projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
1bce6e0
)
tools lib traceevent: Make sure that arg->op.right is set properly
author
Namhyung Kim
<
[email protected]
>
Wed, 19 Sep 2012 06:58:42 +0000
(15:58 +0900)
committer
Arnaldo Carvalho de Melo
<
[email protected]
>
Mon, 24 Sep 2012 15:01:21 +0000
(12:01 -0300)
When process_op failed, @arg will be freed on a caller with type of
PRINT_OP. Thus free_arg() will try to free ->op.right field which can
have stale value if something bad happens in the middle.
Signed-off-by: Namhyung Kim <
[email protected]
>
Cc: Frederic Weisbecker <
[email protected]
>
Cc: Ingo Molnar <
[email protected]
>
Cc: Peter Zijlstra <
[email protected]
>
Cc: Steven Rostedt <
[email protected]
>
Link:
http://lkml.kernel.org/r/
[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <
[email protected]
>
tools/lib/traceevent/event-parse.c
patch
|
blob
|
history
diff --git
a/tools/lib/traceevent/event-parse.c
b/tools/lib/traceevent/event-parse.c
index 6270ee2e98308cf0f8e786bd75d8beb842445dc4..27088c55af1bbc03ed1b6ebaac1d0fd3ef7dc21b 100644
(file)
--- a/
tools/lib/traceevent/event-parse.c
+++ b/
tools/lib/traceevent/event-parse.c
@@
-1719,6
+1719,7
@@
process_op(struct event_format *event, struct print_arg *arg, char **tok)
arg->op.left = left;
arg->op.prio = 0;
+ /* it will set arg->op.right */
type = process_cond(event, arg, tok);
} else if (strcmp(token, ">>") == 0 ||
@@
-1745,6
+1746,7
@@
process_op(struct event_format *event, struct print_arg *arg, char **tok)
arg->type = PRINT_OP;
arg->op.op = token;
arg->op.left = left;
+ arg->op.right = NULL;
if (set_op_prio(arg) == -1) {
event->flags |= EVENT_FL_FAILED;
@@
-1792,6
+1794,7
@@
process_op(struct event_format *event, struct print_arg *arg, char **tok)
arg->op.prio = 0;
+ /* it will set arg->op.right */
type = process_array(event, arg, tok);
} else {