From 6a4d2b5ace566e4e77f57a013326b7c4aa3de6d4 Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Sat, 14 Dec 2013 10:51:37 -0500 Subject: [PATCH] Fix: lttng-live: resource leak Found by Coverity: ** CID 1136987: Resource leak (RESOURCE_LEAK) /formats/lttng-live/lttng-live-functions.c: 372 in lttng_live_attach_session() /formats/lttng-live/lttng-live-functions.c: 386 in lttng_live_attach_session() /formats/lttng-live/lttng-live-functions.c: 383 in lttng_live_attach_session() Signed-off-by: Mathieu Desnoyers --- formats/lttng-live/lttng-live-functions.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/formats/lttng-live/lttng-live-functions.c b/formats/lttng-live/lttng-live-functions.c index 2d923618..b1bc2840 100644 --- a/formats/lttng-live/lttng-live-functions.c +++ b/formats/lttng-live/lttng-live-functions.c @@ -374,7 +374,17 @@ int lttng_live_attach_session(struct lttng_live_ctx *ctx, uint64_t id) char *path; path = strdup(LTTNG_METADATA_PATH_TEMPLATE); - path = mkdtemp(path); + if (!path) { + perror("strdup"); + ret = -1; + goto error; + } + if (!mkdtemp(path)) { + perror("mkdtemp"); + free(path); + ret = -1; + goto error; + } ctx->session->streams[i].metadata_flag = 1; snprintf(ctx->session->streams[i].path, sizeof(ctx->session->streams[i].path), @@ -385,9 +395,11 @@ int lttng_live_attach_session(struct lttng_live_ctx *ctx, uint64_t id) S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP); if (ret < 0) { perror("open"); + free(path); goto error; } ctx->session->streams[i].fd = ret; + free(path); } ret = lttng_live_ctf_trace_assign(&ctx->session->streams[i], be64toh(stream.ctf_trace_id)); -- 2.34.1