perf tools: Don't allow empty argument for field-separator
authorWang Nan <wangnan0@huawei.com>
Fri, 20 Mar 2015 02:57:52 +0000 (02:57 +0000)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 20 Mar 2015 20:49:51 +0000 (17:49 -0300)
Both 'perf diff' and 'perf mem' have 'field-separator' option, which
causes segfault if passed with empty string. This patch uses previously
introduced 'OPT_STRING_NOEMPTY' option macro to prevent fault.

Signed-off-by: Wang Nan <wangnan0@huawei.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: pi3orama@163.com
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Zefan Li <lizefan@huawei.com>
Link: http://lkml.kernel.org/r/1426820272-23302-1-git-send-email-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-diff.c
tools/perf/builtin-mem.c

index f800fc95f5d714dfaf60c0a16143083e69668d03..473887d1d61afec03b58f153556a50424f97a0b2 100644 (file)
@@ -802,7 +802,7 @@ static const struct option options[] = {
        OPT_STRING('s', "sort", &sort_order, "key[,key2...]",
                   "sort by key(s): pid, comm, dso, symbol, parent, cpu, srcline, ..."
                   " Please refer the man page for the complete list."),
-       OPT_STRING('t', "field-separator", &symbol_conf.field_sep, "separator",
+       OPT_STRING_NOEMPTY('t', "field-separator", &symbol_conf.field_sep, "separator",
                   "separator for columns, no spaces will be added between "
                   "columns '.' is reserved."),
        OPT_STRING(0, "symfs", &symbol_conf.symfs, "directory",
index 46c69318de84d4f5f854f7d971c61f6d1b4ea3e4..b4dcf0bfc0299c438f8e7de5f561025693c01a90 100644 (file)
@@ -286,7 +286,7 @@ int cmd_mem(int argc, const char **argv, const char *prefix __maybe_unused)
                   "input file name"),
        OPT_STRING('C', "cpu", &mem.cpu_list, "cpu",
                   "list of cpus to profile"),
-       OPT_STRING('x', "field-separator", &symbol_conf.field_sep,
+       OPT_STRING_NOEMPTY('x', "field-separator", &symbol_conf.field_sep,
                   "separator",
                   "separator for columns, no spaces will be added"
                   " between columns '.' is reserved."),