diff options
author | Masami Hiramatsu <mhiramat@kernel.org> | 2016-05-10 14:47:26 +0900 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2016-05-10 11:56:52 -0300 |
commit | 70a6898fdc11272249622f77b034f47f1e9adb35 (patch) | |
tree | cafe8a11fbe568c8816f42041e3bacaafa0650e2 /tools/perf/perf.c | |
parent | b72ca4039099e953f1ea2dbd58c201b14feb6605 (diff) | |
download | op-kernel-dev-70a6898fdc11272249622f77b034f47f1e9adb35.zip op-kernel-dev-70a6898fdc11272249622f77b034f47f1e9adb35.tar.gz |
perf tools: Make alias handler to check return value of strbuf
Make alias handler and sq_quote_argv to check the return value of strbuf
APIs.
In sq_quote_argv() calls die(), but this fix handles strbuf failure as a
special case and returns to caller, since the caller - handle_alias()
also has to check the return value of other strbuf APIs and those checks
can be merged to one if() statement.
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20160510054725.6158.84597.stgit@devbox
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/perf.c')
-rw-r--r-- | tools/perf/perf.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/tools/perf/perf.c b/tools/perf/perf.c index 83ffe7c..7970008 100644 --- a/tools/perf/perf.c +++ b/tools/perf/perf.c @@ -309,9 +309,11 @@ static int handle_alias(int *argcp, const char ***argv) if (*argcp > 1) { struct strbuf buf; - strbuf_init(&buf, PATH_MAX); - strbuf_addstr(&buf, alias_string); - sq_quote_argv(&buf, (*argv) + 1, PATH_MAX); + if (strbuf_init(&buf, PATH_MAX) < 0 || + strbuf_addstr(&buf, alias_string) < 0 || + sq_quote_argv(&buf, (*argv) + 1, + PATH_MAX) < 0) + die("Failed to allocate memory."); free(alias_string); alias_string = buf.buf; } |