From: Karel Zak Date: Thu, 9 Mar 2023 12:10:41 +0000 (+0100) Subject: lib/env: fix memory leak [coverity scan] X-Git-Tag: v2.39-rc1~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=11208370c90f44201ca7fbfaf01b76502034d544;p=thirdparty%2Futil-linux.git lib/env: fix memory leak [coverity scan] Signed-off-by: Karel Zak --- diff --git a/lib/env.c b/lib/env.c index 5c385f934b..2ccabff6fc 100644 --- a/lib/env.c +++ b/lib/env.c @@ -89,19 +89,22 @@ static struct ul_env_list *env_list_add(struct ul_env_list *ls0, const char *str */ struct ul_env_list *env_from_fd(int fd) { - char *buf = NULL; + char *buf = NULL, *p; size_t rc = 0; struct ul_env_list *ls = NULL; if ((rc = read_all_alloc(fd, &buf)) < 1) return NULL; buf[rc] = '\0'; + p = buf; while (rc > 0) { - ls = env_list_add(ls, buf); - buf += strlen(buf) + 1; - rc -= strlen(buf) + 1; + ls = env_list_add(ls, p); + p += strlen(p) + 1; + rc -= strlen(p) + 1; } + + free(buf); return ls; }