diff options
author | David Teigland <teigland@redhat.com> | 2020-05-13 17:19:41 -0500 |
---|---|---|
committer | David Teigland <teigland@redhat.com> | 2020-05-13 17:20:16 -0500 |
commit | 5c095400de2f84511726cc8178800d19657b814d (patch) | |
tree | 18d075669524e6b5b17a0618e151369b31fcc3a2 | |
parent | 2f29765e7fd1135d070310683cf486f07d041c81 (diff) | |
download | lvm2-5c095400de2f84511726cc8178800d19657b814d.tar.gz |
hints: free hint structs on exit
and free on a couple error paths.
-rw-r--r-- | lib/commands/toolcontext.c | 1 | ||||
-rw-r--r-- | lib/label/hints.c | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c index 2bd7fabd2..63b6811e5 100644 --- a/lib/commands/toolcontext.c +++ b/lib/commands/toolcontext.c @@ -1598,6 +1598,7 @@ struct cmd_context *create_toolcontext(unsigned is_clvmd, dm_list_init(&cmd->formats); dm_list_init(&cmd->segtypes); dm_list_init(&cmd->tags); + dm_list_init(&cmd->hints); dm_list_init(&cmd->config_files); label_init(); diff --git a/lib/label/hints.c b/lib/label/hints.c index 349d5aaef..9546f4880 100644 --- a/lib/label/hints.c +++ b/lib/label/hints.c @@ -351,6 +351,7 @@ static void _unlock_hints(struct cmd_context *cmd) void hints_exit(struct cmd_context *cmd) { + free_hints(&cmd->hints); if (_hints_fd == -1) return; return _unlock_hints(cmd); @@ -1321,6 +1322,7 @@ int get_hints(struct cmd_context *cmd, struct dm_list *hints_out, int *newhints, */ if (!_read_hint_file(cmd, &hints_list, &needs_refresh)) { log_debug("get_hints: read fail"); + free_hints(&hints_list); _unlock_hints(cmd); return 0; } @@ -1333,6 +1335,7 @@ int get_hints(struct cmd_context *cmd, struct dm_list *hints_out, int *newhints, */ if (needs_refresh) { log_debug("get_hints: needs refresh"); + free_hints(&hints_list); if (!_lock_hints(cmd, LOCK_EX, NONBLOCK)) return 0; |