diff options
author | Mathias Krause <minipli@googlemail.com> | 2011-01-30 10:31:48 +0100 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2011-03-11 14:22:43 +0000 |
commit | f17f12ce9dd6ec0a8e1f415ecdbaebfce0207464 (patch) | |
tree | 99c01455d53f7184ac0a52fcfd208efbff9705a0 | |
parent | 07be303d22ac7e067b8a7172a4043ebe32b74b33 (diff) | |
download | linux-f17f12ce9dd6ec0a8e1f415ecdbaebfce0207464.tar.bz2 |
mtd: phram: fix memory leak
Commit 4f678a58 (mtd: fix memory leaks in phram_setup) missed two cases
where the memory allocated for name would be leaked. This commit frees
the memory when register_device() fails and on unregister_devices().
Signed-off-by: Mathias Krause <minipli@googlemail.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
-rw-r--r-- | drivers/mtd/devices/phram.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/mtd/devices/phram.c b/drivers/mtd/devices/phram.c index 52393282eaf1..8d28fa02a5a2 100644 --- a/drivers/mtd/devices/phram.c +++ b/drivers/mtd/devices/phram.c @@ -117,6 +117,7 @@ static void unregister_devices(void) list_for_each_entry_safe(this, safe, &phram_list, list) { del_mtd_device(&this->mtd); iounmap(this->mtd.priv); + kfree(this->mtd.name); kfree(this); } } @@ -275,6 +276,8 @@ static int phram_setup(const char *val, struct kernel_param *kp) ret = register_device(name, start, len); if (!ret) pr_info("%s device: %#x at %#x\n", name, len, start); + else + kfree(name); return ret; } |