Fix: leak on agent event listing error
[lttng-tools.git] / src / bin / lttng-sessiond / cmd.c
index f9e2bd6866f2caead30ac2cb0b6b892b69756b5e..53a72d9b8d9129e04faac25ab84d81f214d2babd 100644 (file)
@@ -490,7 +490,7 @@ static int list_lttng_agent_events(struct agent *agt,
        int i = 0, ret = 0;
        unsigned int nb_event = 0;
        struct agent_event *event;
-       struct lttng_event *tmp_events;
+       struct lttng_event *tmp_events = NULL;
        struct lttng_ht_iter iter;
        size_t extended_len = 0;
        void *extended_at;
@@ -562,9 +562,12 @@ static int list_lttng_agent_events(struct agent *agt,
        ret = nb_event;
        assert(nb_event == i);
 
-error:
+end:
        rcu_read_unlock();
        return ret;
+error:
+       free(tmp_events);
+       goto end;
 }
 
 /*
@@ -769,6 +772,9 @@ static int list_lttng_kernel_events(char *channel_name,
                        memcpy(&(*events)[i].attr.probe, &event->event->u.kprobe,
                                        sizeof(struct lttng_kernel_kprobe));
                        break;
+               case LTTNG_KERNEL_UPROBE:
+                       (*events)[i].type = LTTNG_EVENT_USERSPACE_PROBE;
+                       break;
                case LTTNG_KERNEL_FUNCTION:
                        (*events)[i].type = LTTNG_EVENT_FUNCTION;
                        memcpy(&((*events)[i].attr.ftrace), &event->event->u.ftrace,
This page took 0.023672 seconds and 4 git commands to generate.