Skip to contentSkip to conversation

Fix leak reports

PATCH New Zdenek Kabelac 1 participant 3 messages Aug 8, 2010

lore
Share & tools
lore
#0 lore raw

cover Fix leak reports

Two small patches trying to fix shown leaks by internal tracing.

1st patch triest to swap order of pool destroy and check for leaks
in lvm2_exit() routine.

2nd patch fixes uncleaned resource in error path
(visible in t-lvm-init.sh test)

Zdenek Kabelac (2):
Fix report of leak of _mem_pool in lvm2_exit() Fix report of uninitalized pool leak (t-lvm-init.sh)

 daemons/dmeventd/plugins/lvm2/dmeventd_lvm.c |    4 ++--
 tools/lvmcmdline.c                           |    4 ++++
 2 files changed, 6 insertions(+), 2 deletions(-)
Signature · 1 line
1.7.2.1
#1 lore raw

PATCH 1/2 Fix report of leak of _mem_pool in lvm2_exit()

Move pool destruction before lvm2_exit so it's not being reported as leaked pool.

---
 daemons/dmeventd/plugins/lvm2/dmeventd_lvm.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
daemons/dmeventd/plugins/lvm2/dmeventd_lvm.c +2 -2
index cf62751..937d81d 100644
@@ -131,10 +131,10 @@ void dmeventd_lvm2_exit(void)
 
 	if (!--_register_count) {
 		lvm2_run(_lvm_handle, "_memlock_dec");
-		lvm2_exit(_lvm_handle);
-		_lvm_handle = NULL;
 		dm_pool_destroy(_mem_pool);
 		_mem_pool = NULL;
+		lvm2_exit(_lvm_handle);
+		_lvm_handle = NULL;
 	}
 
 	pthread_mutex_unlock(&_register_mutex);
Signature · 1 line
1.7.2.1
#2 lore raw

PATCH 2/2 Fix report of uninitalized pool leak (t-lvm-init.sh)

In reply to Zdenek Kabelac
---
 tools/lvmcmdline.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
tools/lvmcmdline.c +4 -0
index 6c66fab..b29acfb 100644
@@ -1048,6 +1048,10 @@ int lvm_run_command(struct cmd_context *cmd, int argc, char **argv)
 	if (arg_count(cmd, config_ARG) || !cmd->config_valid || config_files_changed(cmd)) {
 		/* Reinitialise various settings inc. logging, filters */
 		if (!refresh_toolcontext(cmd)) {
+			if (cmd->cft_override) {
+				destroy_config_tree(cmd->cft_override);
+				cmd->cft_override = NULL;
+			}
 			log_error("Updated config file invalid. Aborting.");
 			return ECMD_FAILED;
 		}
Signature · 1 line
1.7.2.1