[PATCH v1 02/18] perf diff: Constify strchr() return variables

From: Shreenidhi Shedi

Date: Sat May 09 2026 - 14:02:50 EST


From: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>

commit f6f41aef53761517391b6192fe5b4bc30b2d717a upstream

Newer glibc versions return const char for strchr() when the 's' arg is
const, change the return variable to const to match that.

Also we don't need to turn that ',' into a '\0', as strtol() will stop
in the first invalid char. No need to touch read only memory.

First noticed with fedora 44.

Reviewed-by: Ian Rogers <irogers@xxxxxxxxxx>
Link: https://lore.kernel.org/r/20251211221756.96294-3-acme@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Signed-off-by: Shreenidhi Shedi <yesshedi@xxxxxxxxx>
---
tools/perf/builtin-diff.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c
index ed07cc6cca56..9a05d67f541b 100644
--- a/tools/perf/builtin-diff.c
+++ b/tools/perf/builtin-diff.c
@@ -177,10 +177,9 @@ static struct header_column {
}
};

-static int setup_compute_opt_wdiff(char *opt)
+static int setup_compute_opt_wdiff(const char *opt)
{
- char *w1_str = opt;
- char *w2_str;
+ const char *w1_str = opt, *w2_str;

int ret = -EINVAL;

@@ -191,8 +190,7 @@ static int setup_compute_opt_wdiff(char *opt)
if (!w2_str)
goto out;

- *w2_str++ = 0x0;
- if (!*w2_str)
+ if (!*++w2_str)
goto out;

compute_wdiff_w1 = strtol(w1_str, NULL, 10);
@@ -213,7 +211,7 @@ static int setup_compute_opt_wdiff(char *opt)
return ret;
}

-static int setup_compute_opt(char *opt)
+static int setup_compute_opt(const char *opt)
{
if (compute == COMPUTE_WEIGHTED_DIFF)
return setup_compute_opt_wdiff(opt);
@@ -233,7 +231,7 @@ static int setup_compute(const struct option *opt, const char *str,
char *cstr = (char *) str;
char buf[50];
unsigned i;
- char *option;
+ const char *option;

if (!str) {
*cp = COMPUTE_DELTA;
--
2.54.0