* [2.6 patch] drivers/char/ipmi/ipmi_msghandler.c: fix a memory leak
@ 2006-03-11 15:10 Adrian Bunk
0 siblings, 0 replies; only message in thread
From: Adrian Bunk @ 2006-03-11 15:10 UTC (permalink / raw)
To: Corey Minyard; +Cc: linux-kernel
The Coverity checker found this memory leak.
Signed-off-by: Adrian Bunk <bunk@stusta.de>
---
drivers/char/ipmi/ipmi_msghandler.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
--- linux-2.6.16-rc5-mm3-full/drivers/char/ipmi/ipmi_msghandler.c.old 2006-03-11 14:22:49.000000000 +0100
+++ linux-2.6.16-rc5-mm3-full/drivers/char/ipmi/ipmi_msghandler.c 2006-03-11 14:25:03.000000000 +0100
@@ -736,7 +736,8 @@ int ipmi_create_user(unsigned int
intf = ipmi_interfaces[if_num];
if ((if_num >= MAX_IPMI_INTERFACES) || IPMI_INVALID_INTERFACE(intf)) {
spin_unlock_irqrestore(&interfaces_lock, flags);
- return -EINVAL;
+ rv = -EINVAL;
+ goto out_kfree;
}
/* Note that each existing user holds a refcount to the interface. */
@@ -751,14 +752,14 @@ int ipmi_create_user(unsigned int
if (!try_module_get(intf->handlers->owner)) {
rv = -ENODEV;
- goto out_err;
+ goto out_kref;
}
if (intf->handlers->inc_usecount) {
rv = intf->handlers->inc_usecount(intf->send_info);
if (rv) {
module_put(intf->handlers->owner);
- goto out_err;
+ goto out_kref;
}
}
@@ -769,9 +770,10 @@ int ipmi_create_user(unsigned int
*user = new_user;
return 0;
- out_err:
- kfree(new_user);
+out_kref:
kref_put(&intf->refcount, intf_free);
+out_kfree:
+ kfree(new_user);
return rv;
}
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2006-03-11 15:11 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-03-11 15:10 [2.6 patch] drivers/char/ipmi/ipmi_msghandler.c: fix a memory leak Adrian Bunk
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®