All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tools lib traceevent: Do not reassign parg after collapse_tree()
@ 2016-05-11 19:09 Steven Rostedt
  2016-05-12 12:57 ` Namhyung Kim
  2016-05-13  9:18 ` [tip:perf/urgent] " tip-bot for Steven Rostedt
  0 siblings, 2 replies; 4+ messages in thread
From: Steven Rostedt @ 2016-05-11 19:09 UTC (permalink / raw)
  To: LKML; +Cc: Arnaldo Carvalho de Melo, Ingo Molnar, Namhyung Kim


At the end of process_filter(), collapse_tree() was changed to update the
parg parameter, but the reassignment after the call wasn't removed.
What happens is that the "current_op" gets modified and freed and parg
is assigned to the new allocated argument. But after the call to
collapse_tree(), parg is assigned again to the just freed "current_op",
and this causes the tool to crash.

current_op must also be assigned to NULL in case of error, otherwise it
will cause it to be free()ed twice.

Cc: Namhyung Kim <namhyung@kernel.org>
Cc: stable@vger.kernel.org # 3.14+
Fixes: 42d6194d133c ("tools lib traceevent: Refactor process_filter()")
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
 tools/lib/traceevent/parse-filter.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/lib/traceevent/parse-filter.c b/tools/lib/traceevent/parse-filter.c
index 0144b3d1bb77..88cccea3ca99 100644
--- a/tools/lib/traceevent/parse-filter.c
+++ b/tools/lib/traceevent/parse-filter.c
@@ -1164,11 +1164,11 @@ process_filter(struct event_format *event, struct filter_arg **parg,
 		current_op = current_exp;
 
 	ret = collapse_tree(current_op, parg, error_str);
+	/* collapse_tree() may free current_op, and updates parg accordingly */
+	current_op = NULL;
 	if (ret < 0)
 		goto fail;
 
-	*parg = current_op;
-
 	free(token);
 	return 0;
 
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-05-13  9:18 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-11 19:09 [PATCH] tools lib traceevent: Do not reassign parg after collapse_tree() Steven Rostedt
2016-05-12 12:57 ` Namhyung Kim
2016-05-12 14:27   ` Arnaldo Carvalho de Melo
2016-05-13  9:18 ` [tip:perf/urgent] " tip-bot for Steven Rostedt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.