]> git.ipfire.org Git - thirdparty/mdadm.git/commit
Free map to avoid resource leak issues
authorGuoqing Jiang <gqjiang@suse.com>
Mon, 11 Jun 2018 09:03:44 +0000 (17:03 +0800)
committerJes Sorensen <jsorensen@fb.com>
Mon, 11 Jun 2018 10:35:41 +0000 (06:35 -0400)
commit898bd1ecefe6c72102f398680dcfef80e4de21c1
tree070d1e320818fe345503a00356fbcf191e80247a
parent4a353e6ec48e35437b27978add6cd2cd015f2cfe
Free map to avoid resource leak issues

1. There are some places which didn't free map as
discovered by coverity.

CID 289661 (#1 of 1): Resource leak (RESOURCE_LEAK)12. leaked_storage: Variable mapl going out of scope leaks the storage it points to.
CID 289619 (#3 of 3): Resource leak (RESOURCE_LEAK)63. leaked_storage: Variable map going out of scope leaks the storage it points to.
CID 289618 (#1 of 1): Resource leak (RESOURCE_LEAK)26. leaked_storage: Variable map going out of scope leaks the storage it points to.
CID 289607 (#1 of 1): Resource leak (RESOURCE_LEAK)41. leaked_storage: Variable map going out of scope leaks the storage it points to.

2. If we call map_by_* inside a loop, then map_free
should be called in the same loop, and it is better
to set map to NULL after free.

3. And map_unlock is always called with map_lock,
if we don't call map_remove before map_unlock,
then the memory (allocated by  map_lock -> map_read
-> map_add -> xmalloc) could be leaked. So we
need to free it in map_unlock as well.

Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
Signed-off-by: Jes Sorensen <jsorensen@fb.com>
Assemble.c
Detail.c
Incremental.c
config.c
mapfile.c
mdadm.c