]> git.karo-electronics.de Git - linux-beck.git/commitdiff
tools lib traceevent: Get rid of die() from pevent_register_event_handler
authorNamhyung Kim <namhyung.kim@lge.com>
Fri, 7 Sep 2012 02:49:46 +0000 (11:49 +0900)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 7 Sep 2012 15:15:07 +0000 (12:15 -0300)
If memory allocation for handler fails, return gracefully instead of
calling die().  Note that casts to void * are needed because gcc
complained about discarding 'const' qualifier during implicit argument
cast.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/1346986187-5170-2-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/lib/traceevent/event-parse.c

index 6d5e75987a3dfe44ebd4418ab33073e32444e53f..17fd01d46e60260c60c3dcc53ff9f03c9c42a9f7 100644 (file)
@@ -5183,7 +5183,12 @@ int pevent_register_event_handler(struct pevent *pevent,
 
  not_found:
        /* Save for later use. */
-       handle = malloc_or_die(sizeof(*handle));
+       handle = malloc(sizeof(*handle));
+       if (!handle) {
+               do_warning("Failed to allocate event handler");
+               return PEVENT_ERRNO__MEM_ALLOC_FAILED;
+       }
+
        memset(handle, 0, sizeof(*handle));
        handle->id = id;
        if (event_name)
@@ -5193,7 +5198,11 @@ int pevent_register_event_handler(struct pevent *pevent,
 
        if ((event_name && !handle->event_name) ||
            (sys_name && !handle->sys_name)) {
-               die("Failed to allocate event/sys name");
+               do_warning("Failed to allocate event/sys name");
+               free((void *)handle->event_name);
+               free((void *)handle->sys_name);
+               free(handle);
+               return PEVENT_ERRNO__MEM_ALLOC_FAILED;
        }
 
        handle->func = func;