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:
committed by
Pavel Emelyanov
parent
edc865361e
commit
6a49f82fb6
10
proc_parse.c
10
proc_parse.c
@@ -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;
|
||||
|
Reference in New Issue
Block a user