Fix: sym name len (kernel)
[lttng-tools.git] / src / bin / lttng-sessiond / trace-kernel.c
index d889b6ab6582570587c9c4a66cdcf51fad30943a..a5c215fae98a068f359c0bf182e307a693dc9244 100644 (file)
@@ -38,6 +38,13 @@ struct ltt_kernel_channel *trace_kernel_get_channel_by_name(
        assert(session);
        assert(name);
 
+       /*
+        * If we receive an empty string for channel name, it means the
+        * default channel name is requested.
+        */
+       if (name[0] == '\0')
+               name = DEFAULT_CHANNEL_NAME;
+
        DBG("Trying to find channel %s", name);
 
        cds_list_for_each_entry(chan, &session->channel_list.head, list) {
@@ -144,6 +151,16 @@ struct ltt_kernel_channel *trace_kernel_create_channel(
        }
        memcpy(lkc->channel, chan, sizeof(struct lttng_channel));
 
+       /*
+        * If we receive an empty string for channel name, it means the
+        * default channel name is requested.
+        */
+       if (chan->name[0] == '\0') {
+               strncpy(lkc->channel->name, DEFAULT_CHANNEL_NAME,
+                       sizeof(lkc->channel->name));
+       }
+       lkc->channel->name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0';
+
        lkc->fd = -1;
        lkc->stream_count = 0;
        lkc->event_count = 0;
@@ -191,7 +208,6 @@ struct ltt_kernel_event *trace_kernel_create_event(struct lttng_event *ev)
                attr->instrumentation = LTTNG_KERNEL_KRETPROBE;
                attr->u.kretprobe.addr = ev->attr.probe.addr;
                attr->u.kretprobe.offset = ev->attr.probe.offset;
-               attr->u.kretprobe.offset = ev->attr.probe.offset;
                strncpy(attr->u.kretprobe.symbol_name,
                                ev->attr.probe.symbol_name, LTTNG_KERNEL_SYM_NAME_LEN);
                attr->u.kretprobe.symbol_name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0';
This page took 0.023063 seconds and 4 git commands to generate.