* [PATCH] mtd: fix memory leak in block2mtd_setup()
@ 2006-05-13 23:42 Jesper Juhl
2006-05-14 0:43 ` David Woodhouse
0 siblings, 1 reply; 2+ messages in thread
From: Jesper Juhl @ 2006-05-13 23:42 UTC (permalink / raw)
To: linux-kernel; +Cc: Simon Evans, Jörn Engel, David Woodhouse, Jesper Juhl
There's a mem leak in drivers/mtd/devices/block2mtd.c::block2mtd_setup()
We can leak 'name' allocated with kmalloc in 'parse_name' if leave via
the 'parse_err' macro since it contains a return but doesn't do any
freeing.
Spotted by coverity checker as bug 615.
Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
---
drivers/mtd/devices/block2mtd.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
--- linux-2.6.17-rc4-git2-orig/drivers/mtd/devices/block2mtd.c 2006-05-13 21:28:27.000000000 +0200
+++ linux-2.6.17-rc4-git2/drivers/mtd/devices/block2mtd.c 2006-05-14 01:33:36.000000000 +0200
@@ -418,7 +418,8 @@ static inline void kill_final_newline(ch
static int block2mtd_setup(const char *val, struct kernel_param *kp)
{
- char buf[80+12], *str=buf; /* 80 for device, 12 for erase size */
+ char buf[80+12]; /* 80 for device, 12 for erase size */
+ char *str = buf;
char *token[2];
char *name;
size_t erase_size = PAGE_SIZE;
@@ -430,7 +431,7 @@ static int block2mtd_setup(const char *v
strcpy(str, val);
kill_final_newline(str);
- for (i=0; i<2; i++)
+ for (i = 0; i < 2; i++)
token[i] = strsep(&str, ",");
if (str)
@@ -449,8 +450,10 @@ static int block2mtd_setup(const char *v
if (token[1]) {
ret = parse_num(&erase_size, token[1]);
- if (ret)
+ if (ret) {
+ kfree(name);
parse_err("illegal erase size");
+ }
}
add_device(name, erase_size);
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] mtd: fix memory leak in block2mtd_setup()
2006-05-13 23:42 [PATCH] mtd: fix memory leak in block2mtd_setup() Jesper Juhl
@ 2006-05-14 0:43 ` David Woodhouse
0 siblings, 0 replies; 2+ messages in thread
From: David Woodhouse @ 2006-05-14 0:43 UTC (permalink / raw)
To: Jesper Juhl; +Cc: linux-kernel, Simon Evans, Jörn Engel
On Sun, 2006-05-14 at 01:42 +0200, Jesper Juhl wrote:
> There's a mem leak in drivers/mtd/devices/block2mtd.c::block2mtd_setup()
>
> We can leak 'name' allocated with kmalloc in 'parse_name' if leave via
> the 'parse_err' macro since it contains a return but doesn't do any
> freeing.
>
> Spotted by coverity checker as bug 615.
Applied; thanks.
--
dwmw2
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2006-05-14 0:43 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-05-13 23:42 [PATCH] mtd: fix memory leak in block2mtd_setup() Jesper Juhl
2006-05-14 0:43 ` David Woodhouse
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.