forked from luck/tmp_suning_uos_patched
net: kalmia: fix memory leaks
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> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1eca92eef1
commit
f1472cb09f
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user