Message ID | 1565809005-8437-1-git-send-email-wenwen@cs.uga.edu (mailing list archive) |
---|---|
State | Mainlined |
Commit | f1472cb09f11ddb41d4be84f0650835cb65a9073 |
Headers | show |
Series | net: kalmia: fix memory leaks | expand |
From: Wenwen Wang <wenwen@cs.uga.edu> Date: Wed, 14 Aug 2019 13:56:43 -0500 > In kalmia_init_and_get_ethernet_addr(), 'usb_buf' is allocated through > kmalloc(). In the following execution, if the 'status' returned by > kalmia_send_init_packet() is not 0, 'usb_buf' is not deallocated, leading > to memory leaks. To fix this issue, add the 'out' label to free 'usb_buf'. > > Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu> Applied.
diff --git a/drivers/net/usb/kalmia.c b/drivers/net/usb/kalmia.c index d62b670..fc5895f 100644 --- a/drivers/net/usb/kalmia.c +++ b/drivers/net/usb/kalmia.c @@ -113,16 +113,16 @@ kalmia_init_and_get_ethernet_addr(struct usbnet *dev, u8 *ethernet_addr) status = kalmia_send_init_packet(dev, usb_buf, ARRAY_SIZE(init_msg_1), usb_buf, 24); if (status != 0) - return status; + goto out; memcpy(usb_buf, init_msg_2, 12); status = kalmia_send_init_packet(dev, usb_buf, ARRAY_SIZE(init_msg_2), usb_buf, 28); if (status != 0) - return status; + goto out; memcpy(ethernet_addr, usb_buf + 10, ETH_ALEN); - +out: kfree(usb_buf); return status; }
In kalmia_init_and_get_ethernet_addr(), 'usb_buf' is allocated through kmalloc(). In the following execution, if the 'status' returned by kalmia_send_init_packet() is not 0, 'usb_buf' is not deallocated, leading to memory leaks. To fix this issue, add the 'out' label to free 'usb_buf'. Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu> --- drivers/net/usb/kalmia.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)