From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
Ingo Molnar <mingo@kernel.org>, Jiri Olsa <jolsa@redhat.com>,
Namhyung Kim <namhyung@kernel.org>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>
Subject: Re: perf: Use strcmp(str, "const") instead of strncmp(str, "const", sizeof("const"))
Date: Thu, 20 Dec 2018 15:55:53 -0300 [thread overview]
Message-ID: <20181220185553.GA22971@kernel.org> (raw)
In-Reply-To: <20181220122601.62bf8858@gandalf.local.home>
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@redhat.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@goodmis.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
next prev parent reply other threads:[~2018-12-20 18:55 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-20 17:26 perf: Use strcmp(str, "const") instead of strncmp(str, "const", sizeof("const")) Steven Rostedt
2018-12-20 18:55 ` Arnaldo Carvalho de Melo [this message]
2019-01-01 18:00 ` Jiri Olsa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181220185553.GA22971@kernel.org \
--to=acme@kernel.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox