Fix: destroy context hash table being NULL
authorDavid Goulet <dgoulet@efficios.com>
Thu, 5 Apr 2012 19:56:43 +0000 (15:56 -0400)
committerDavid Goulet <dgoulet@efficios.com>
Thu, 5 Apr 2012 19:56:43 +0000 (15:56 -0400)
Passing an event unknown loglevel type to the session daemon (for UST
domain) was triggering an error code path to destroy the context hash
table of the event which is not created once the error is hit.

Fix a segfault completely killing the session daemon.

Signed-off-by: David Goulet <dgoulet@efficios.com>
src/bin/lttng-sessiond/trace-ust.c

index c8b3b72f91ca3343a9a507dd343d5447ea6eb323..1d48002d07297dad4ff88f8903c3d9ab422416b6 100644 (file)
@@ -250,6 +250,10 @@ struct ltt_ust_event *trace_ust_create_event(struct lttng_event *ev)
        lttng_ht_node_init_str(&lue->node, lue->attr.name);
        /* Alloc context hash tables */
        lue->ctx = lttng_ht_new(0, LTTNG_HT_TYPE_ULONG);
        lttng_ht_node_init_str(&lue->node, lue->attr.name);
        /* Alloc context hash tables */
        lue->ctx = lttng_ht_new(0, LTTNG_HT_TYPE_ULONG);
+       if (lue->ctx == NULL) {
+               ERR("Unable to create context hash table for event %s", ev->name);
+               goto error_free_event;
+       }
 
        DBG2("Trace UST event %s, loglevel (%d,%d) created",
                lue->attr.name, lue->attr.loglevel_type,
 
        DBG2("Trace UST event %s, loglevel (%d,%d) created",
                lue->attr.name, lue->attr.loglevel_type,
@@ -258,7 +262,6 @@ struct ltt_ust_event *trace_ust_create_event(struct lttng_event *ev)
        return lue;
 
 error_free_event:
        return lue;
 
 error_free_event:
-       lttng_ht_destroy(lue->ctx);
        free(lue);
 error:
        return NULL;
        free(lue);
 error:
        return NULL;
This page took 0.025271 seconds and 4 git commands to generate.