From: Mathieu Desnoyers Date: Wed, 26 Nov 2014 17:27:29 +0000 (-0500) Subject: Fix: missing strdup oom check in lttng create.c X-Git-Tag: v2.6.0-rc4~29 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=c0ea637e572742a05354a367dc37645f3231fb84;p=lttng-tools.git Fix: missing strdup oom check in lttng create.c 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 Signed-off-by: Jérémie Galarneau --- diff --git a/src/bin/lttng/commands/create.c b/src/bin/lttng/commands/create.c index 4f97c8648..4540cc8cc 100644 --- a/src/bin/lttng/commands/create.c +++ b/src/bin/lttng/commands/create.c @@ -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);