2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-31 14:25:49 +00:00

mount: free all parts of mnt entries

mnt_entry contains a few strings and they should be release too

CID 996198 (#4 of 4): Resource leak (RESOURCE_LEAK)
20. leaked_storage: Variable "pm" going out of scope leaks the storage
it points to.

CID 996190 (#1 of 1): Resource leak (RESOURCE_LEAK)
13. leaked_storage: Variable "new" going out of scope leaks the storage
it points to.

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
Andrey Vagin
2013-04-10 01:26:59 +04:00
committed by Pavel Emelyanov
parent edc865361e
commit 6a49f82fb6
3 changed files with 41 additions and 16 deletions

View File

@@ -799,11 +799,12 @@ struct mount_info *parse_mountinfo(pid_t pid)
struct mount_info *new;
int ret;
new = xmalloc(sizeof(*new));
new = mnt_entry_alloc();
if (!new)
goto err;
mnt_entry_init(new);
new->next = list;
list = new;
ret = parse_mountinfo_ent(str, new);
if (ret < 0) {
@@ -815,9 +816,6 @@ struct mount_info *parse_mountinfo(pid_t pid)
new->fstype->name, new->source,
new->s_dev, new->root, new->mountpoint,
new->flags, new->options);
new->next = list;
list = new;
}
out:
fclose(f);
@@ -826,7 +824,7 @@ out:
err:
while (list) {
struct mount_info *next = list->next;
xfree(list);
mnt_entry_free(list);
list = next;
}
goto out;