Prevent the addition of UST events to agent channels
[lttng-tools.git] / src / bin / lttng-sessiond / cmd.c
index 01969b2b9607579a72877318b27418cf4942502a..f8fa4dedddda209c3280b05e71f105d45a79a66d 100644 (file)
@@ -380,6 +380,8 @@ static int list_lttng_kernel_events(char *channel_name,
                strncpy((*events)[i].name, event->event->name, LTTNG_SYMBOL_NAME_LEN);
                (*events)[i].name[LTTNG_SYMBOL_NAME_LEN - 1] = '\0';
                (*events)[i].enabled = event->enabled;
+               (*events)[i].filter =
+                               (unsigned char) !!event->filter_expression;
 
                switch (event->event->instrumentation) {
                case LTTNG_KERNEL_TRACEPOINT:
@@ -1685,6 +1687,16 @@ static int _cmd_enable_event(struct ltt_session *session,
                        assert(uchan);
                }
 
+               if (uchan->domain != LTTNG_DOMAIN_UST && !internal_event) {
+                       /*
+                        * Don't allow users to add UST events to channels which
+                        * are assigned to a userspace subdomain (JUL, Log4J,
+                        * Python, etc.).
+                        */
+                       ret = LTTNG_ERR_INVALID_CHANNEL_DOMAIN;
+                       goto error;
+               }
+
                if (!internal_event) {
                        /*
                         * Ensure the event name is not reserved for internal
@@ -1779,6 +1791,7 @@ static int _cmd_enable_event(struct ltt_session *session,
                                        sizeof(struct lttng_filter_bytecode)
                                        + filter->len);
                                if (!filter_copy) {
+                                       ret = LTTNG_ERR_NOMEM;
                                        goto error;
                                }
 
This page took 0.023242 seconds and 4 git commands to generate.