Fix: use zmalloc in lttng enable_events.c
[lttng-tools.git] / src / bin / lttng / commands / enable_events.c
index ee93127049913aa60d76195b1bda3d03b90a82d8..c15edf5fd3deaaeeba49fc86345180475588d288 100644 (file)
@@ -422,7 +422,10 @@ char *print_exclusions(int count, char **names)
 
        /* add length of preamble + one for NUL - one for last (missing) comma */
        length += strlen(preamble);
-       ret = malloc(length);
+       ret = zmalloc(length);
+       if (!ret) {
+               return NULL;
+       }
        strncpy(ret, preamble, length);
        for (i = 0; i < count; i++) {
                strcat(ret, names[i]);
@@ -630,6 +633,16 @@ static int enable_events(char *session_name)
                                        WARN("Kernel events already enabled (channel %s, session %s)",
                                                        print_channel_name(channel_name), session_name);
                                        break;
+                               case LTTNG_ERR_TRACE_ALREADY_STARTED:
+                               {
+                                       const char *msg = "The command tried to enable an event in a new domain for a session that has already been started once.";
+                                       ERR("Events: %s (channel %s, session %s)",
+                                                       msg,
+                                                       print_channel_name(channel_name),
+                                                       session_name);
+                                       ret = CMD_ERROR;
+                                       break;
+                               }
                                default:
                                        ERR("Events: %s (channel %s, session %s)",
                                                        lttng_strerror(ret),
@@ -703,6 +716,16 @@ static int enable_events(char *session_name)
                                                        " (channel %s, session %s)",
                                                print_channel_name(channel_name), session_name);
                                        break;
+                               case LTTNG_ERR_TRACE_ALREADY_STARTED:
+                               {
+                                       const char *msg = "The command tried to enable an event in a new domain for a session that has already been started once.";
+                                       ERR("All events: %s (channel %s, session %s, filter \'%s\')",
+                                                       msg,
+                                                       print_channel_name(channel_name),
+                                                       session_name, opt_filter);
+                                       ret = CMD_ERROR;
+                                       break;
+                               }
                                default:
                                        ERR("All events: %s (channel %s, session %s, filter \'%s\')",
                                                        lttng_strerror(ret),
@@ -878,7 +901,19 @@ static int enable_events(char *session_name)
                                                        event_name,
                                                        exclusion_string,
                                                        print_channel_name(channel_name), session_name);
+                                       warn = 1;
                                        break;
+                               case LTTNG_ERR_TRACE_ALREADY_STARTED:
+                               {
+                                       const char *msg = "The command tried to enable an event in a new domain for a session that has already been started once.";
+                                       ERR("Event %s%s: %s (channel %s, session %s)", event_name,
+                                                       exclusion_string,
+                                                       msg,
+                                                       print_channel_name(channel_name),
+                                                       session_name);
+                                       ret = CMD_ERROR;
+                                       break;
+                               }
                                default:
                                        ERR("Event %s%s: %s (channel %s, session %s)", event_name,
                                                        exclusion_string,
@@ -887,9 +922,9 @@ static int enable_events(char *session_name)
                                                                ? print_raw_channel_name(channel_name)
                                                                : print_channel_name(channel_name),
                                                        session_name);
+                                       warn = 1;
                                        break;
                                }
-                               warn = 1;
                        } else {
                                MSG("%s event %s%s created in channel %s",
                                                get_domain_str(dom.type), event_name,
@@ -915,6 +950,17 @@ static int enable_events(char *session_name)
                                                exclusion_string,
                                                print_channel_name(channel_name), session_name);
                                        break;
+                               case LTTNG_ERR_TRACE_ALREADY_STARTED:
+                               {
+                                       const char *msg = "The command tried to enable an event in a new domain for a session that has already been started once.";
+                                       ERR("Event %s%s: %s (channel %s, session %s, filter \'%s\')", ev.name,
+                                                       exclusion_string,
+                                                       msg,
+                                                       print_channel_name(channel_name),
+                                                       session_name, opt_filter);
+                                       ret = CMD_ERROR;
+                                       break;
+                               }
                                default:
                                        ERR("Event %s%s: %s (channel %s, session %s, filter \'%s\')", ev.name,
                                                        exclusion_string,
This page took 0.026548 seconds and 4 git commands to generate.