perf list: Escape '\r' in JSON output
authorIan Rogers <irogers@google.com>
Wed, 10 Apr 2024 22:23:53 +0000 (15:23 -0700)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 12 Apr 2024 20:54:02 +0000 (17:54 -0300)
Events like for sapphirerapids have '\r' in the uncore descriptions. The
non-escaped versions of this fail JSON validation the the 'perf list'
test.

Signed-off-by: Ian Rogers <irogers@google.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/20240410222353.1722840-1-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-list.c

index e0fe3d178d6314917cd16baf3d868da4211e34fa..5cab31231551da3e310b0e14597abac123a13bc2 100644 (file)
@@ -326,6 +326,9 @@ static void fix_escape_fprintf(FILE *fp, struct strbuf *buf, const char *fmt, ..
                                        case '\n':
                                                strbuf_addstr(buf, "\\n");
                                                break;
+                                       case '\r':
+                                               strbuf_addstr(buf, "\\r");
+                                               break;
                                        case '\\':
                                                fallthrough;
                                        case '\"':