lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 20 Dec 2018 15:55:53 -0300
From:   Arnaldo Carvalho de Melo <acme@...nel.org>
To:     Steven Rostedt <rostedt@...dmis.org>
Cc:     LKML <linux-kernel@...r.kernel.org>,
        Ingo Molnar <mingo@...nel.org>, Jiri Olsa <jolsa@...hat.com>,
        Namhyung Kim <namhyung@...nel.org>,
        Alexander Shishkin <alexander.shishkin@...ux.intel.com>
Subject: Re: perf: Use strcmp(str, "const") instead of strncmp(str, "const",
 sizeof("const"))

Em Thu, Dec 20, 2018 at 12:26:01PM -0500, Steven Rostedt escreveu:
> As strncmp(str, "const", sizeof("const") is exactly the same as
> strcmp(str, "const") use that instead, otherwise it is confusing.
> 
> sizeof("const") includes the nul terminator ('\0') of the string
> "const", and that means strncmp() will only return a match if str and
> "const" are exactly the same, which is what strcmp() does.

There are more of those, that are there from time immemorial, lemme see
if the original intention can be found... 

commit 26d330226b9cf6208daae9b0b3697980c8fb51d8
Author: Jiri Olsa <jolsa@...hat.com>
Date:   Tue Aug 7 15:20:47 2012 +0200

    perf tools: Support for DWARF mode callchain

----------------

I thought this could be because at the time strchr was used and thus the
name would be in a buffer followed by ',' or other separator, but
strtok_r() was used, so your patch should simplify things.

- Arnaldo
 
> Signed-off-by: Steven Rostedt (VMware) <rostedt@...dmis.org>
> ---
> diff --git a/tools/perf/util/callchain.c b/tools/perf/util/callchain.c
> index 32ef7bdca1cf..eabf30f963a5 100644
> --- a/tools/perf/util/callchain.c
> +++ b/tools/perf/util/callchain.c
> @@ -258,7 +258,7 @@ int parse_callchain_record(const char *arg, struct callchain_param *param)
>  
>  	do {
>  		/* Framepointer style */
> -		if (!strncmp(name, "fp", sizeof("fp"))) {
> +		if (!strcmp(name, "fp")) {
>  			if (!strtok_r(NULL, ",", &saveptr)) {
>  				param->record_mode = CALLCHAIN_FP;
>  				ret = 0;
> @@ -268,7 +268,7 @@ int parse_callchain_record(const char *arg, struct callchain_param *param)
>  			break;
>  
>  		/* Dwarf style */
> -		} else if (!strncmp(name, "dwarf", sizeof("dwarf"))) {
> +		} else if (!strcmp(name, "dwarf")) {
>  			const unsigned long default_stack_dump_size = 8192;
>  
>  			ret = 0;

-- 

- Arnaldo

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ