X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Ftrace-ust.c;h=ed635f960501b672b047ffd245436cbf46b2c533;hp=5a8fc7dd988e300a70e6fd56b86b8a7bab6bae74;hb=b8aa16822f579a6e15b41d2761801a0a65d5f2a5;hpb=a2c0da862b4c3286fa919b96556bc30e8914e28b diff --git a/src/bin/lttng-sessiond/trace-ust.c b/src/bin/lttng-sessiond/trace-ust.c index 5a8fc7dd9..ed635f960 100644 --- a/src/bin/lttng-sessiond/trace-ust.c +++ b/src/bin/lttng-sessiond/trace-ust.c @@ -85,8 +85,8 @@ error: * * Return pointer to structure or NULL. */ -struct ltt_ust_session *trace_ust_create_session(char *path, int session_id, - struct lttng_domain *domain) +struct ltt_ust_session *trace_ust_create_session(char *path, + unsigned int session_id, struct lttng_domain *domain) { int ret; struct ltt_ust_session *lus; @@ -152,7 +152,7 @@ struct ltt_ust_channel *trace_ust_create_channel(struct lttng_channel *chan, luc->attr.num_subbuf = chan->attr.num_subbuf; luc->attr.switch_timer_interval = chan->attr.switch_timer_interval; luc->attr.read_timer_interval = chan->attr.read_timer_interval; - luc->attr.output = chan->attr.output; + luc->attr.output = (enum lttng_ust_output) chan->attr.output; /* Translate to UST output enum */ switch (luc->attr.output) { @@ -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; @@ -459,8 +462,10 @@ static void destroy_channel_rcu(struct rcu_head *head) */ void trace_ust_destroy_metadata(struct ltt_ust_metadata *metadata) { + if (!metadata->handle) { + return; + } DBG2("Trace UST destroy metadata %d", metadata->handle); - free(metadata); } @@ -542,7 +547,7 @@ void trace_ust_destroy_session(struct ltt_ust_session *session) rcu_read_lock(); - DBG2("Trace UST destroy session %d", session->id); + DBG2("Trace UST destroy session %u", session->id); /* Cleaning up UST domain */ destroy_domain_global(&session->domain_global);