Commit 0e2b8072 authored by Dan Carpenter's avatar Dan Carpenter Committed by David S. Miller

irda-usb: add error handling and fix leak

If the call to kcalloc() fails then we should return -ENOMEM.
Signed-off-by: default avatarDan Carpenter <error27@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 72150e9b
...@@ -1651,6 +1651,8 @@ static int irda_usb_probe(struct usb_interface *intf, ...@@ -1651,6 +1651,8 @@ static int irda_usb_probe(struct usb_interface *intf,
self->rx_urb = kcalloc(self->max_rx_urb, sizeof(struct urb *), self->rx_urb = kcalloc(self->max_rx_urb, sizeof(struct urb *),
GFP_KERNEL); GFP_KERNEL);
if (!self->rx_urb)
goto err_free_net;
for (i = 0; i < self->max_rx_urb; i++) { for (i = 0; i < self->max_rx_urb; i++) {
self->rx_urb[i] = usb_alloc_urb(0, GFP_KERNEL); self->rx_urb[i] = usb_alloc_urb(0, GFP_KERNEL);
...@@ -1783,6 +1785,8 @@ static int irda_usb_probe(struct usb_interface *intf, ...@@ -1783,6 +1785,8 @@ static int irda_usb_probe(struct usb_interface *intf,
err_out_1: err_out_1:
for (i = 0; i < self->max_rx_urb; i++) for (i = 0; i < self->max_rx_urb; i++)
usb_free_urb(self->rx_urb[i]); usb_free_urb(self->rx_urb[i]);
kfree(self->rx_urb);
err_free_net:
free_netdev(net); free_netdev(net);
err_out: err_out:
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment