lib/env: fix memory leak [coverity scan]
Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
parent
92168e2c0d
commit
11208370c9
1 changed files with 7 additions and 4 deletions
11
lib/env.c
11
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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue