From: David Goulet Date: Thu, 5 Apr 2012 19:56:43 +0000 (-0400) Subject: Fix: destroy context hash table being NULL X-Git-Tag: v2.1.0-rc1~160 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=af061a47af03a507bb9c2fade8f278a2a01fe29c;p=lttng-tools.git Fix: destroy context hash table being NULL 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 --- diff --git a/src/bin/lttng-sessiond/trace-ust.c b/src/bin/lttng-sessiond/trace-ust.c index c8b3b72f9..1d48002d0 100644 --- a/src/bin/lttng-sessiond/trace-ust.c +++ b/src/bin/lttng-sessiond/trace-ust.c @@ -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); + 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, @@ -258,7 +262,6 @@ struct ltt_ust_event *trace_ust_create_event(struct lttng_event *ev) return lue; error_free_event: - lttng_ht_destroy(lue->ctx); free(lue); error: return NULL;