From 446f5bc8b88b56e53278e4a96330910d42404ff8 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 23 Feb 2025 04:25:19 +0100 Subject: [PATCH] Fix possible memory leak in sourcing of environment file Found by Coverity Scan Signed-off-by: Joachim Wiberg --- src/service.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/service.c b/src/service.c index 455437b6..2e185fb1 100644 --- a/src/service.c +++ b/src/service.c @@ -497,24 +497,17 @@ static void source_env(svc_t *svc) continue; /* invalid key */ } - switch (wordexp(value, &we, 0)) { - case 0: + if (wordexp(value, &we, 0)) { + setenv(key, value, 1); + } else { for (i = 0, *val = 0; i < we.we_wordc; i++) { if (i > 0) strlcat(val, " ", LINE_SIZE); strlcat(val, we.we_wordv[i], LINE_SIZE); } setenv(key, val, 1); - wordfree(&we); - break; - - case WRDE_NOSPACE: - wordfree(&we); - /* fallthrough */ - default: - setenv(key, value, 1); - break; } + wordfree(&we); } fclose(fp);