Re: [PATCH] perf probe: check if *ptr2 is zero and not ptr2

From: Arnaldo Carvalho de Melo
Date: Mon Oct 03 2016 - 07:46:11 EST


Em Mon, Oct 03, 2016 at 12:22:25PM +0100, Colin Ian King escreveu:
> On 03/10/16 12:19, Arnaldo Carvalho de Melo wrote:
> > Em Mon, Oct 03, 2016 at 11:34:31AM +0100, Colin King escreveu:
> >> From: Colin Ian King <colin.king@xxxxxxxxxxxxx>
> >>
> >> Static anaylsis with cppcheck detected an incorrect comparison:
> >> [tools/perf/util/probe-event.c:216]: (warning) Char literal compared with
> >> pointer 'ptr2'. Did you intend to dereference it?
> >
> > What tool was used for that?
>
> cppcheck https://github.com/danmar/cppcheck - I run it nearly daily on
> linux-next and linux

Thanks, I'll try to get it and use it before upstreaming stuff,

- Arnaldo

> >
> > - Arnaldo
> >
> >> Dereference ptr2 for the comparison to fix this.
> >>
> >> Fixes: 35726d3a4ca9 ("perf probe: Fix to cut off incompatible chars from group name")
> >> Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
> >> ---
> >> tools/perf/util/probe-event.c | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
> >> index fcfbef0..d281ae2 100644
> >> --- a/tools/perf/util/probe-event.c
> >> +++ b/tools/perf/util/probe-event.c
> >> @@ -213,7 +213,7 @@ static int convert_exec_to_group(const char *exec, char **result)
> >> goto out;
> >> }
> >>
> >> - for (ptr2 = ptr1; ptr2 != '\0'; ptr2++) {
> >> + for (ptr2 = ptr1; *ptr2 != '\0'; ptr2++) {
> >> if (!isalnum(*ptr2) && *ptr2 != '_') {
> >> *ptr2 = '\0';
> >> break;
> >> --
> >> 2.9.3