[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#876314: stretch-pu: package trace-cmd/2.6-0.1+b1



Package: release.debian.org
User: release.debian.org@packages.debian.org
Usertags: pu
Tags: stretch
Severity: normal

trace-cmd in Stretch segfaults on certain traces in newer kernels. I
would prefer to update to 2.6.1 but that diff is isn't small [0].
I was able to locate one patch in 2.6.1 which handles the error
condition and so avoids the segfault. I propose this patch as a stable
update.

[0] https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=867440;filename=trace-cmd-2.6.1-0.1-nmu.diff;msg=10
    59 files changed, 4625 insertions(+), 1482 deletions(-)

Sebastian
diff -Nru trace-cmd-2.6/debian/changelog trace-cmd-2.6/debian/changelog
--- trace-cmd-2.6/debian/changelog	2016-07-17 12:40:56.000000000 +0000
+++ trace-cmd-2.6/debian/changelog	2017-09-20 19:51:23.000000000 +0000
@@ -1,3 +1,10 @@
+trace-cmd (2.6-0.1+deb9u1) stretch; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix segfault while processing certain trace files (Closes: #867440).
+
+ -- Sebastian Andrzej Siewior <sebastian@breakpoint.cc>  Wed, 20 Sep 2017 21:51:23 +0200
+
 trace-cmd (2.6-0.1) unstable; urgency=medium
 
   * Non-maintainer upload.
diff -Nru trace-cmd-2.6/debian/patches/0002-tools-lib-traceevent-Add-checks-for-returned-EVENT_E.patch trace-cmd-2.6/debian/patches/0002-tools-lib-traceevent-Add-checks-for-returned-EVENT_E.patch
--- trace-cmd-2.6/debian/patches/0002-tools-lib-traceevent-Add-checks-for-returned-EVENT_E.patch	1970-01-01 00:00:00.000000000 +0000
+++ trace-cmd-2.6/debian/patches/0002-tools-lib-traceevent-Add-checks-for-returned-EVENT_E.patch	2017-09-20 19:50:33.000000000 +0000
@@ -0,0 +1,64 @@
+From 02e85fa19d4aed68d6a3a0cd21b9d4ce1f55025a Mon Sep 17 00:00:00 2001
+From: Dean Nelson <dnelson@redhat.com>
+Date: Thu, 20 Aug 2015 11:16:32 -0400
+Subject: [PATCH] tools lib traceevent: Add checks for returned EVENT_ERROR
+ type
+
+Running the following perf-stat command on an arm64 system produces the
+following result...
+
+  [root@aarch64 ~]# perf stat -e kmem:mm_page_alloc -a sleep 1
+    Warning: [kmem:mm_page_alloc] function sizeof not defined
+    Warning: Error: expected type 4 but read 0
+  Segmentation fault
+  [root@aarch64 ~]#
+
+The second warning was a result of the first warning not stopping
+processing after it detected the issue.
+
+That is, code that found the issue reported the first problem, but
+because it did not exit out of the functions smoothly, it caused the
+other warning to appear and not only that, it later caused the SIGSEGV.
+
+Signed-off-by: Dean Nelson <dnelson@redhat.com>
+Reviewed-by: Steven Rostedt <rostedt@goodmis.org>
+Acked-by: Namhyung Kim <namhyung@kernel.org>
+Cc: Jiri Olsa <jolsa@kernel.org>
+Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
+Link: http://lkml.kernel.org/r/20150820151632.13927.13791.email-sent-by-dnelson@teal
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+---
+ event-parse.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/event-parse.c b/event-parse.c
+index e3b026a3d7fc..a4aed20f071c 100644
+--- a/event-parse.c
++++ b/event-parse.c
+@@ -1746,6 +1746,9 @@ process_cond(struct event_format *event, struct print_arg *top, char **tok)
+ 	type = process_arg(event, left, &token);
+ 
+  again:
++	if (type == EVENT_ERROR)
++		goto out_free;
++
+ 	/* Handle other operations in the arguments */
+ 	if (type == EVENT_OP && strcmp(token, ":") != 0) {
+ 		type = process_op(event, left, &token);
+@@ -2005,6 +2008,12 @@ process_op(struct event_format *event, struct print_arg *arg, char **tok)
+ 			goto out_warn_free;
+ 
+ 		type = process_arg_token(event, right, tok, type);
++		if (type == EVENT_ERROR) {
++			free_arg(right);
++			/* token was freed in process_arg_token() via *tok */
++			token = NULL;
++			goto out_free;
++		}
+ 
+ 		if (right->type == PRINT_OP &&
+ 		    get_op_prio(arg->op.op) < get_op_prio(right->op.op)) {
+-- 
+2.14.1
+
diff -Nru trace-cmd-2.6/debian/patches/series trace-cmd-2.6/debian/patches/series
--- trace-cmd-2.6/debian/patches/series	2016-07-17 12:40:56.000000000 +0000
+++ trace-cmd-2.6/debian/patches/series	2017-09-20 19:51:11.000000000 +0000
@@ -1 +1,2 @@
 0001-trace-cmd-Use-python2.7-for-executable-name.patch
+0002-tools-lib-traceevent-Add-checks-for-returned-EVENT_E.patch

Reply to: