From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D61F33A7F57 for ; Wed, 21 Jan 2026 11:25:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768994742; cv=none; b=ZhxlBc9Y1X5yoa4GEz/+hFjUi4InLqCyprrrvN4FsjnRiTpCuNTMhfCHI541oF7LN7Ur6UgPrwd06Y4tpRzignxcIvLDaciUP16MzuB3ExA+mbNh6EyzsNVvOr5lnImEZ0nU0uS/1DDC6XfIYIPIOMP+0EukDFFvXkvhlgNjmis= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768994742; c=relaxed/simple; bh=tLVK4di/mJbG0rt4yh7jUH9/iQkvUkcnYMDVn7GHvlc=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ja4TKe0rSq2pyCtiBREQm2CJlr9q2qZVrxDWCkzhjRLOF2IonTAJdNPk6hP3pAlZQL7R9t45kB8LJmm9tNaFO/1K2w+CLX9Vwrisx0vV0eVC7pniF7daFKPerWNL99V7qLfiLZ8jL3jU5PoM7wk4vhU3WKFhcVXb4QPvHmN3bBo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=jYjpmF21; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="jYjpmF21" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-47f5c2283b6so43020085e9.1 for ; Wed, 21 Jan 2026 03:25:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768994739; x=1769599539; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=MZcOCzMzN58rEfAspc9Xym1mOpiIyhkHUUmjF6zLfds=; b=jYjpmF21ZgPC68mllLn6NN+0HwPhfN2yjPwnUMuC0tyY1COskOVP2FshosEsqP2tA1 QOOGG29PxHFNcXaGhVQ2XeBGtkOKAYNdm6kzaNcqnZrCUx2TFpfRxYUFiOtUntG/ej93 JfvKAvGWBG1toM7d6oNo1MlhKqY6JJ6+R71BnPx1Y6V9nOrkcxvAy3CdTj++0v6dX3Qf CFYKCHlgbGXzIBFle7QZyWKVpcoeTkpTl8MxZ73h9o/hyk+ZqmmIJ8mk0UZwyCmnVxRD OMDxyEjG+8ydGXqMEiKL9vGae2oDBgIt5BIFTHIL7s8eW8V9aSTcNrk5/ZFP9CS8jDUH VTgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768994739; x=1769599539; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=MZcOCzMzN58rEfAspc9Xym1mOpiIyhkHUUmjF6zLfds=; b=Y5FCdSe6vq4Cf2YSvvIWsBi5ns0TR+K9wFo7S7w8oVM/ON5IroOmagbPrUTRYbva4J 4/ESxoIExt+ZxSAZjIIOXKPlh5dhsujfJLD7ZwOalClcrXNlkmPBSS2VNs5O+Xvk1QDn LM6vxj1wCOQ5udAA9UNigrA7rcwXWUi0HjXqcfc16qlUpP5i28ZLjQxE93Aj//w5HR/4 b5CvVFbDv+8zQl838T46Ivt9jt3dyo+vmTNzNEjTZW0PITFAkl1P3CxvMk02tcktEkqe zDdZxeZg6FWZYestia3RAIto6eSTaq3J9fbNu2BjF8Yq5BLZDxKz8TJozdvu/2vSJO+H S4Cw== X-Forwarded-Encrypted: i=1; AJvYcCWALdVWXqqUxRhH8vNeSC0PL4yGUafcJD7s0JPwP/tvgT8CB0M6ZlGtz02zpYMb9wEIWYnp1UwNYkSUrHg=@vger.kernel.org X-Gm-Message-State: AOJu0Yw8uES1DK1xu/Q4uo7HVB6os2tVIzNaFxeORoQRiPsGKxeoqsGv Acybq447LOVw4C1Kg/Z+g/nz7p9gfNB6AJTM5t4AIAuusz6im3zyQe7H X-Gm-Gg: AZuq6aL3TO8I/O1QC3o6LXMd9U1uVx2Y+lLIxzJ6fvxyvi/uq0dUHt0Uu/fKfNB1aNQ wByrYtub+OOB5z6tBSiq5u0QjrHRMVaUxjm90HBz9+8OWcg8TRZTzKap6O/3SrOAsW85ZbBsSUY ppEnJxnzhqN0K6VmS4Xdz5IUGNFsl2+ON63tn0sVcAj9iNOFbauQTK7qp8DCjxaakwsdQXrI7KL 80YPXdvVS7ZAUINsJxQpfg1aHTG89YM9R17mihWUFsdIDzedi+RvchAt8wyXae89v2efse8lSVF Ck8rv5JvzVTBc9UEuvgU/etWguCgf1urp6sEQ9ndwVJ9TZCpKW7hZcTFAFi0XR020M83QqWKuUi /SF4p+61r5nC4uwwrx1pvitmT+QJnTB4nYtD/Vjhnu1uo7FAXyuHbAJH69Nb7JgcLwzQc2y15H3 W9SUdKc0QHxdE6xjD5erbWmrcWMEFigGQJZCQdbUUFM32sMbIJtOLX X-Received: by 2002:a05:600c:3f0f:b0:47e:e076:c7a2 with SMTP id 5b1f17b1804b1-4803e7a2d74mr79194685e9.15.1768994738668; Wed, 21 Jan 2026 03:25:38 -0800 (PST) Received: from pumpkin (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4801e86c197sm306901805e9.1.2026.01.21.03.25.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jan 2026 03:25:38 -0800 (PST) Date: Wed, 21 Jan 2026 11:25:36 +0000 From: David Laight To: Arnaldo Carvalho de Melo Cc: Namhyung Kim , Ingo Molnar , Thomas Gleixner , James Clark , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , Clark Williams , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Arnaldo Carvalho de Melo Subject: Re: [PATCH 3/4] perf list: Don't write to const memory Message-ID: <20260121112536.27fd5d11@pumpkin> In-Reply-To: <20260120220900.366451-4-acme@kernel.org> References: <20260120220900.366451-1-acme@kernel.org> <20260120220900.366451-4-acme@kernel.org> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Tue, 20 Jan 2026 19:08:59 -0300 Arnaldo Carvalho de Melo wrote: > From: Arnaldo Carvalho de Melo > > Something now detected on fedora 44, where strchr() returns const if it > is passed a const pointer: > > util/print-events.c: In function 'print_sdt_events': > util/print-events.c:89:29: error: initialization discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers] > 89 | char *bid = strchr(sdt_name->s, '@'); > | ^~~~~~ > > Fix it by using strnchr() if strchr finds the separator instead of > temporarily scrubbing it with '\0'. > > Signed-off-by: Arnaldo Carvalho de Melo > --- > tools/perf/util/print-events.c | 13 +++++-------- > 1 file changed, 5 insertions(+), 8 deletions(-) > > diff --git a/tools/perf/util/print-events.c b/tools/perf/util/print-events.c > index 8f3ed83853a9e468..898cf426509790cd 100644 > --- a/tools/perf/util/print-events.c > +++ b/tools/perf/util/print-events.c > @@ -97,14 +97,11 @@ void print_sdt_events(const struct print_callbacks *print_cb, void *print_state) > } else { > next_sdt_name = strlist__next(sdt_name); > if (next_sdt_name) { > - char *bid2 = strchr(next_sdt_name->s, '@'); > - > - if (bid2) > - *bid2 = '\0'; > - if (strcmp(sdt_name->s, next_sdt_name->s) == 0) > - show_detail = true; > - if (bid2) > - *bid2 = '@'; > + const char *bid2 = strchr(next_sdt_name->s, '@'); > + > + show_detail = bid2 ? > + strncmp(sdt_name->s, next_sdt_name->s, bid2 - next_sdt_name->s) == 0 : > + strcmp(sdt_name->s, next_sdt_name->s) == 0; You could use: show_detail = strncmp(sdt_name->s, next_sdt_name->s, strcspn(sdt_name->s, "@")); strcspn() will be slower, but it is succinct. I'm sure there is a function like strchr() that returns a pointer to the '\0' when the character isn't found - but I can't remember what it is called :-( David > } > } > last_sdt_name = sdt_name->s;