Make it return error value since its only caller find_event() now can
handle allocation error properly.

Signed-off-by: Namhyung Kim <namhy...@kernel.org>
---
 tools/lib/traceevent/parse-filter.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/tools/lib/traceevent/parse-filter.c 
b/tools/lib/traceevent/parse-filter.c
index 06e5af9f8fc4..faa10824b87d 100644
--- a/tools/lib/traceevent/parse-filter.c
+++ b/tools/lib/traceevent/parse-filter.c
@@ -260,15 +260,19 @@ static void free_arg(struct filter_arg *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_list *list;
 
-       list = malloc_or_die(sizeof(*list));
+       list = malloc(sizeof(*list));
+       if (list == NULL)
+               return -1;
+
        list->next = *events;
        *events = list;
        list->event = event;
+       return 0;
 }
 
 static int event_match(struct event_format *event,
@@ -291,6 +295,7 @@ find_event(struct pevent *pevent, struct event_list 
**events,
        regex_t ereg;
        regex_t sreg;
        int match = 0;
+       int fail = 0;
        char *reg;
        int ret;
        int i;
@@ -333,7 +338,10 @@ find_event(struct pevent *pevent, struct event_list 
**events,
                event = pevent->events[i];
                if (event_match(event, sys_name ? &sreg : NULL, &ereg)) {
                        match = 1;
-                       add_event(events, event);
+                       if (add_event(events, event) < 0) {
+                               fail = 1;
+                               break;
+                       }
                }
        }
 
@@ -343,6 +351,8 @@ find_event(struct pevent *pevent, struct event_list 
**events,
 
        if (!match)
                return -1;
+       if (fail)
+               return -2;
 
        return 0;
 }
-- 
1.7.11.7

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to