[lvm-devel] LVM2 ./WHATS_NEW lib/commands/toolcontext.c
mbroz at sourceware.org
mbroz at sourceware.org
Mon Jun 15 11:56:40 UTC 2009
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: mbroz at sourceware.org 2009-06-15 11:56:37
Modified files:
. : WHATS_NEW
lib/commands : toolcontext.c
Log message:
Fix memory leaks in toolcontext error path.
E.g.
# vgscan
Parse error at byte 2360 (line 54): expected a value
Failed to load config file /etc/lvm/lvm.conf
You have a memory leak (not released memory pool):
[0x818c788] library (12 bytes)
...
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1147&r2=1.1148
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/commands/toolcontext.c.diff?cvsroot=lvm2&r1=1.74&r2=1.75
--- LVM2/WHATS_NEW 2009/06/12 08:34:15 1.1147
+++ LVM2/WHATS_NEW 2009/06/15 11:56:31 1.1148
@@ -1,5 +1,6 @@
Version 2.02.48 -
===============================
+ Fix memory leaks in toolcontext error path.
Re-instate partial activation support in clustered mode. (2.02.40)
Allow metadata correction even when PVs are missing.
Use 'lvm lvresize' instead of 'lvresize' in fsadm.
--- LVM2/lib/commands/toolcontext.c 2009/04/02 20:46:11 1.74
+++ LVM2/lib/commands/toolcontext.c 2009/06/15 11:56:36 1.75
@@ -516,15 +516,15 @@
{
struct config_tree_list *cfl;
+ dm_list_iterate_items(cfl, &cmd->config_files) {
+ destroy_config_tree(cfl->cft);
+ }
+
if (cmd->cft && cmd->cft->root) {
destroy_config_tree(cmd->cft);
cmd->cft = NULL;
}
- dm_list_iterate_items(cfl, &cmd->config_files) {
- destroy_config_tree(cfl->cft);
- }
-
dm_list_init(&cmd->config_files);
}
@@ -1110,6 +1110,14 @@
return cmd;
error:
+ _destroy_tag_configs(cmd);
+ dev_cache_exit();
+ if (cmd->filter)
+ cmd->filter->destroy(cmd->filter);
+ if (cmd->mem)
+ dm_pool_destroy(cmd->mem);
+ if (cmd->libmem)
+ dm_pool_destroy(cmd->libmem);
dm_free(cmd);
return NULL;
}
More information about the lvm-devel
mailing list