Fix: lttng lttng.c: check strdup OOM
[lttng-tools.git] / src / bin / lttng / lttng.c
index 2df8b8740225afc831c5769779473c0db5140f51..34ccd59c517a6a737f8953cc717f4de28e8f9f60 100644 (file)
@@ -16,6 +16,7 @@
  */
 
 #define _GNU_SOURCE
+#define _LGPL_SOURCE
 #include <getopt.h>
 #include <signal.h>
 #include <stdio.h>
@@ -83,8 +84,6 @@ static struct cmd_struct commands[] =  {
        { "snapshot", cmd_snapshot},
        { "save", cmd_save},
        { "load", cmd_load},
-       { "enable-consumer", cmd_enable_consumer}, /* OBSOLETE */
-       { "disable-consumer", cmd_disable_consumer}, /* OBSOLETE */
        { NULL, NULL}   /* Array closure */
 };
 
@@ -444,6 +443,7 @@ static int check_args_no_sessiond(int argc, char **argv)
 static int parse_args(int argc, char **argv)
 {
        int opt, ret;
+       char *user;
 
        if (argc < 2) {
                usage(stderr);
@@ -484,9 +484,17 @@ static int parse_args(int argc, char **argv)
                        break;
                case OPT_SESSION_PATH:
                        opt_sessiond_path = strdup(optarg);
+                       if (!opt_sessiond_path) {
+                               ret = -1;
+                               goto error;
+                       }
                        break;
                case OPT_RELAYD_PATH:
                        opt_relayd_path = strdup(optarg);
+                       if (!opt_relayd_path) {
+                               ret = -1;
+                               goto error;
+                       }
                        break;
                case OPT_DUMP_OPTIONS:
                        list_options(stdout);
@@ -522,6 +530,14 @@ static int parse_args(int argc, char **argv)
                goto error;
        }
 
+       /* For Mathieu Desnoyers a.k.a. Dr. Tracing */
+       user = getenv("USER");
+       if (user != NULL && ((strncmp(progname, "drtrace", 7) == 0 ||
+                                       strncmp("compudj", user, 7) == 0))) {
+               MSG("%c[%d;%dmWelcome back Dr Tracing!%c[%dm\n", 27,1,33,27,0);
+       }
+       /* Thanks Mathieu */
+
        /* 
         * Handle leftovers which is a first level command with the trailing
         * options.
@@ -568,18 +584,9 @@ error:
 int main(int argc, char *argv[])
 {
        int ret;
-       char *user;
 
        progname = argv[0] ? argv[0] : "lttng";
 
-       /* For Mathieu Desnoyers a.k.a. Dr. Tracing */
-       user = getenv("USER");
-       if (user != NULL && ((strncmp(progname, "drtrace", 7) == 0 ||
-                               strncmp("compudj", user, 7) == 0))) {
-               MSG("%c[%d;%dmWelcome back Dr Tracing!%c[%dm\n", 27,1,33,27,0);
-       }
-       /* Thanks Mathieu */
-
        ret = set_signal_handler();
        if (ret < 0) {
                clean_exit(ret);
This page took 0.026794 seconds and 5 git commands to generate.