OSDN Git Service

perf tools: Add missing else to cmd_daemon subcommand condition
authorJiri Olsa <jolsa@kernel.org>
Mon, 26 Jun 2023 20:16:05 +0000 (22:16 +0200)
committerNamhyung Kim <namhyung@kernel.org>
Tue, 27 Jun 2023 19:09:44 +0000 (12:09 -0700)
Namhyung reported segfault in perf daemon start command.

It's caused by extra check on argv[0] which is set to NULL by previous
__cmd_start call. Adding missing else to skip the extra check.

Fixes: 92294b906e6c ("perf daemon: Dynamically allocate path to perf")
Reported-and-Tested-by: Namhyung Kim <namhyung@kernel.org>
Reported-by: Thomas Richter <tmricht@linux.ibm.com>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Ian Rogers <irogers@google.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Link: https://lore.kernel.org/r/20230626201606.2514679-1-jolsa@kernel.org
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/builtin-daemon.c

index f5674d8..83954af 100644 (file)
@@ -1524,7 +1524,7 @@ int cmd_daemon(int argc, const char **argv)
        if (argc) {
                if (!strcmp(argv[0], "start"))
                        ret = __cmd_start(&__daemon, daemon_options, argc, argv);
-               if (!strcmp(argv[0], "signal"))
+               else if (!strcmp(argv[0], "signal"))
                        ret = __cmd_signal(&__daemon, daemon_options, argc, argv);
                else if (!strcmp(argv[0], "stop"))
                        ret = __cmd_stop(&__daemon, daemon_options, argc, argv);