Implement lttng-modules tracepoint wildcard support
[lttng-tools.git] / src / bin / lttng / commands / enable_events.c
index 92ca76272bb54e78d40e432d674cc1c933f39b43..0de6c8d08b1a55b3dfbb30b484e95de506fed830 100644 (file)
@@ -334,6 +334,10 @@ static int loglevel_log4j_str_to_value(const char *inputstr)
        int i = 0;
        char str[LTTNG_SYMBOL_NAME_LEN];
 
+       if (!inputstr || strlen(inputstr) == 0) {
+               return -1;
+       }
+
        /*
         * Loop up to LTTNG_SYMBOL_NAME_LEN minus one because the NULL bytes is
         * added at the end of the loop so a the upper bound we avoid the overflow.
@@ -373,6 +377,10 @@ static int loglevel_jul_str_to_value(const char *inputstr)
        int i = 0;
        char str[LTTNG_SYMBOL_NAME_LEN];
 
+       if (!inputstr || strlen(inputstr) == 0) {
+               return -1;
+       }
+
        /*
         * Loop up to LTTNG_SYMBOL_NAME_LEN minus one because the NULL bytes is
         * added at the end of the loop so a the upper bound we avoid the overflow.
@@ -414,6 +422,10 @@ static int loglevel_python_str_to_value(const char *inputstr)
        int i = 0;
        char str[LTTNG_SYMBOL_NAME_LEN];
 
+       if (!inputstr || strlen(inputstr) == 0) {
+               return -1;
+       }
+
        /*
         * Loop up to LTTNG_SYMBOL_NAME_LEN minus one because the NULL bytes is
         * added at the end of the loop so a the upper bound we avoid the overflow.
@@ -450,6 +462,10 @@ int loglevel_str_to_value(const char *inputstr)
        int i = 0;
        char str[LTTNG_SYMBOL_NAME_LEN];
 
+       if (!inputstr || strlen(inputstr) == 0) {
+               return -1;
+       }
+
        /*
         * Loop up to LTTNG_SYMBOL_NAME_LEN minus one because the NULL bytes is
         * added at the end of the loop so a the upper bound we avoid the overflow.
@@ -761,7 +777,7 @@ static int enable_events(char *session_name)
                /* Default setup for enable all */
                if (opt_kernel) {
                        ev.type = opt_event_type;
-                       ev.name[0] = '\0';
+                       strcpy(ev.name, "*");
                        /* kernel loglevels not implemented */
                        ev.loglevel_type = LTTNG_EVENT_LOGLEVEL_ALL;
                } else {
@@ -1018,9 +1034,12 @@ static int enable_events(char *session_name)
                                        print_channel_name(channel_name));
 
                        switch (opt_event_type) {
-                       case LTTNG_EVENT_ALL:   /* Default behavior is tracepoint */
-                               ev.type = LTTNG_EVENT_TRACEPOINT;
-                               /* Fall-through */
+                       case LTTNG_EVENT_ALL:   /* Enable tracepoints and syscalls */
+                               /* If event name differs from *, select tracepoint. */
+                               if (strcmp(ev.name, "*")) {
+                                       ev.type = LTTNG_EVENT_TRACEPOINT;
+                               }
+                               break;
                        case LTTNG_EVENT_TRACEPOINT:
                                break;
                        case LTTNG_EVENT_PROBE:
This page took 0.027848 seconds and 4 git commands to generate.