Messages in this thread Patch in this message | | | Date | Sat, 27 Feb 2016 01:39:37 -0800 | From | tip-bot for Arnaldo Carvalho de Melo <> | Subject | [tip:perf/core] perf tools: Use asprintf() for simple string formatting/allocation |
| |
Commit-ID: 5104ffb229c357d9672344126040721e5dc4cc7b Gitweb: http://git.kernel.org/tip/5104ffb229c357d9672344126040721e5dc4cc7b Author: Arnaldo Carvalho de Melo <acme@redhat.com> AuthorDate: Thu, 25 Feb 2016 10:14:50 -0300 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Thu, 25 Feb 2016 10:14:50 -0300
perf tools: Use asprintf() for simple string formatting/allocation
No need to use strbuf there, its just a simple alloc+formatting, which asprintf does just fine.
Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Wang Nan <wangnan0@huawei.com> Link: http://lkml.kernel.org/n/tip-6q6cxfhk8c8ypg3tfpo0i2iy@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/perf.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/tools/perf/perf.c b/tools/perf/perf.c index 144047c..f632119 100644 --- a/tools/perf/perf.c +++ b/tools/perf/perf.c @@ -454,11 +454,12 @@ static void handle_internal_command(int argc, const char **argv) static void execv_dashed_external(const char **argv) { - struct strbuf cmd = STRBUF_INIT; + char *cmd; const char *tmp; int status; - strbuf_addf(&cmd, "perf-%s", argv[0]); + if (asprintf(&cmd, "perf-%s", argv[0]) < 0) + goto do_die; /* * argv[0] must be the perf command, but the argv array @@ -467,7 +468,7 @@ static void execv_dashed_external(const char **argv) * restore it on error. */ tmp = argv[0]; - argv[0] = cmd.buf; + argv[0] = cmd; /* * if we fail because the command is not found, it is @@ -475,15 +476,16 @@ static void execv_dashed_external(const char **argv) */ status = run_command_v_opt(argv, 0); if (status != -ERR_RUN_COMMAND_EXEC) { - if (IS_RUN_COMMAND_ERR(status)) + if (IS_RUN_COMMAND_ERR(status)) { +do_die: die("unable to run '%s'", argv[0]); + } exit(-status); } errno = ENOENT; /* as if we called execvp */ argv[0] = tmp; - - strbuf_release(&cmd); + zfree(&cmd); } static int run_argv(int *argcp, const char ***argv)
| |