Commit 234520d3 authored by Namhyung Kim's avatar Namhyung Kim Committed by Arnaldo Carvalho de Melo

tools lib traceevent: Get rid of malloc_or_die() in add_event()

Make it return error value since its only caller find_event() now can
handle allocation error properly.
Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
Reviewed-by: default avatarSteven Rostedt <rostedt@goodmis.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung.kim@lge.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/1386567251-22751-8-git-send-email-namhyung@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 4f244163
...@@ -245,15 +245,19 @@ static void free_arg(struct filter_arg *arg) ...@@ -245,15 +245,19 @@ static void free_arg(struct filter_arg *arg)
free(arg); free(arg);
} }
static void add_event(struct event_list **events, static int add_event(struct event_list **events,
struct event_format *event) struct event_format *event)
{ {
struct event_list *list; struct event_list *list;
list = malloc_or_die(sizeof(*list)); list = malloc(sizeof(*list));
if (list == NULL)
return -1;
list->next = *events; list->next = *events;
*events = list; *events = list;
list->event = event; list->event = event;
return 0;
} }
static int event_match(struct event_format *event, static int event_match(struct event_format *event,
...@@ -276,6 +280,7 @@ find_event(struct pevent *pevent, struct event_list **events, ...@@ -276,6 +280,7 @@ find_event(struct pevent *pevent, struct event_list **events,
regex_t ereg; regex_t ereg;
regex_t sreg; regex_t sreg;
int match = 0; int match = 0;
int fail = 0;
char *reg; char *reg;
int ret; int ret;
int i; int i;
...@@ -310,7 +315,10 @@ find_event(struct pevent *pevent, struct event_list **events, ...@@ -310,7 +315,10 @@ find_event(struct pevent *pevent, struct event_list **events,
event = pevent->events[i]; event = pevent->events[i];
if (event_match(event, sys_name ? &sreg : NULL, &ereg)) { if (event_match(event, sys_name ? &sreg : NULL, &ereg)) {
match = 1; match = 1;
add_event(events, event); if (add_event(events, event) < 0) {
fail = 1;
break;
}
} }
} }
...@@ -320,6 +328,8 @@ find_event(struct pevent *pevent, struct event_list **events, ...@@ -320,6 +328,8 @@ find_event(struct pevent *pevent, struct event_list **events,
if (!match) if (!match)
return -1; return -1;
if (fail)
return -2;
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment