[PATCH] Fixed a pathing issue with objdump and grep

From: Adam Stylinski
Date: Wed May 03 2017 - 08:12:44 EST


The path fed to the argument for objdump used in the perf-annotate
feature didn't escape spaces. The subsequent argument to grep for
the name of the DSO containing symbols also assumed no spaces existed
in the pathname, so grep also parsed these as extra positional
arguments.

Signed-off-by: Adam E Stylinski <adam.stylinski@xxxxxxxxxxx>
---
tools/perf/util/annotate.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
index 7aa57225cbf7..fc5a96d584f2 100644
--- a/tools/perf/util/annotate.c
+++ b/tools/perf/util/annotate.c
@@ -1441,7 +1441,7 @@ int symbol__disassemble(struct symbol *sym, struct map *map, const char *arch_na
snprintf(command, sizeof(command),
"%s %s%s --start-address=0x%016" PRIx64
" --stop-address=0x%016" PRIx64
- " -l -d %s %s -C %s 2>/dev/null|grep -v %s|expand",
+ " -l -d %s %s -C \"%s\" 2>/dev/null|grep -v \"%s\"|expand",
objdump_path ? objdump_path : "objdump",
disassembler_style ? "-M " : "",
disassembler_style ? disassembler_style : "",
--
2.12.2