summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesper Juhl <jesper.juhl@gmail.com>2006-03-25 03:08:12 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-25 08:23:00 -0800
commit656bde5728b824ca23fcab8bc5800b309ea48d64 (patch)
tree9e570f9e5847a653d8ab11e2653464f5b525cc53
parentbda44e1d168ac76fce5183eb141592fc645c7818 (diff)
downloadlinux-656bde5728b824ca23fcab8bc5800b309ea48d64.tar.bz2
[PATCH] Fix memory leak in isapnp
Spotted by the Coverity checker as bug #666 akpm; there are several other `return 1;'s in there which aren't freeing `dev'. (A fix which converts this function to single-exit would be preferred..) Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Cc: Adam Belay <ambx1@neo.rr.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--drivers/pnp/isapnp/core.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/pnp/isapnp/core.c b/drivers/pnp/isapnp/core.c
index 57fd60314d59..b1b4b683cbdd 100644
--- a/drivers/pnp/isapnp/core.c
+++ b/drivers/pnp/isapnp/core.c
@@ -646,8 +646,10 @@ static int __init isapnp_create_device(struct pnp_card *card,
size = 0;
skip = 0;
option = pnp_register_independent_option(dev);
- if (!option)
+ if (!option) {
+ kfree(dev);
return 1;
+ }
pnp_add_card_device(card,dev);
} else {
skip = 1;