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:
af9da88
)
tools lib traceevent: Fix error path on pevent_parse_event
author
Namhyung Kim
<
[email protected]
>
Tue, 25 Sep 2012 12:25:19 +0000
(21:25 +0900)
committer
Arnaldo Carvalho de Melo
<
[email protected]
>
Tue, 25 Sep 2012 12:53:53 +0000
(09:53 -0300)
If __pevent_parse_format() succeeded but add_event() failed, 'ret' didn't
have a proper error code. Set it to PEVENT_ERRNO__MEM_ALLOC_FAILED.
In addition, at that point 'event' also has fields and format
information and they all need to be freed. Call pevent_free_format() to
handle it.
Signed-off-by: Namhyung Kim <
[email protected]
>
Cc: Ingo Molnar <
[email protected]
>
Cc: Peter Zijlstra <
[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 17c922145e885d46751914e71b53e397671d335c..47264b4652b990f3d237531607060f94036ad7cf 100644
(file)
--- a/
tools/lib/traceevent/event-parse.c
+++ b/
tools/lib/traceevent/event-parse.c
@@
-5044,8
+5044,10
@@
enum pevent_errno pevent_parse_event(struct pevent *pevent, const char *buf,
/* Add pevent to event so that it can be referenced */
event->pevent = pevent;
- if (add_event(pevent, event))
+ if (add_event(pevent, event)) {
+ ret = PEVENT_ERRNO__MEM_ALLOC_FAILED;
goto event_add_failed;
+ }
#define PRINT_ARGS 0
if (PRINT_ARGS && event->print_fmt.args)
@@
-5054,9
+5056,7
@@
enum pevent_errno pevent_parse_event(struct pevent *pevent, const char *buf,
return 0;
event_add_failed:
- free(event->system);
- free(event->name);
- free(event);
+ pevent_free_format(event);
return ret;
}