Fix: missing strdup oom check in lttng create.c
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 26 Nov 2014 17:27:29 +0000 (12:27 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 27 Nov 2014 17:54:17 +0000 (12:54 -0500)
Introduce tmp_path to ensure that no code path can possibly try to free
the return value of utils_get_home_dir(). Re-using alloc_path for both
static and dynamically allocated pointer is error-prone.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/bin/lttng/commands/create.c

index 4f97c86489e9934c9f2b3b136d6757dc186ea1c6..4540cc8cc5cf7e4399e0d5c1ac4150426bc8f8ce 100644 (file)
@@ -376,16 +376,22 @@ static int create_session(void)
                 */
                url = NULL;
        } else if (!opt_no_output) {
+               char *tmp_path;
+
                /* Auto output path */
-               alloc_path = utils_get_home_dir();
-               if (alloc_path == NULL) {
+               tmp_path = utils_get_home_dir();
+               if (tmp_path == NULL) {
                        ERR("HOME path not found.\n \
                                        Please specify an output path using -o, --output PATH");
                        ret = CMD_FATAL;
                        goto error;
                }
-               alloc_path = strdup(alloc_path);
-
+               alloc_path = strdup(tmp_path);
+               if (!alloc_path) {
+                       PERROR("allocating alloc_path");
+                       ret = CMD_FATAL;
+                       goto error;
+               }
                ret = asprintf(&alloc_url,
                                "file://%s/" DEFAULT_TRACE_DIR_NAME "/%s",
                                alloc_path, session_name_date);
This page took 0.026559 seconds and 4 git commands to generate.