diff options
author | Marc Kleine-Budde <mkl@pengutronix.de> | 2017-03-02 12:03:40 +0100 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2017-06-05 21:17:19 +0100 |
commit | 454b5e15d9c0dcf9ead4f52e02de8d46d7f789b3 (patch) | |
tree | 76a41023da46461463732a7011f6e0998b539906 /drivers | |
parent | 1dcf51b84cf9c90e1bf88defc431b01f3e096cb4 (diff) | |
download | linux-stable-454b5e15d9c0dcf9ead4f52e02de8d46d7f789b3.tar.gz linux-stable-454b5e15d9c0dcf9ead4f52e02de8d46d7f789b3.tar.bz2 linux-stable-454b5e15d9c0dcf9ead4f52e02de8d46d7f789b3.zip |
can: usb_8dev: Fix memory leak of priv->cmd_msg_buffer
commit 7c42631376306fb3f34d51fda546b50a9b6dd6ec upstream.
The priv->cmd_msg_buffer is allocated in the probe function, but never
kfree()ed. This patch converts the kzalloc() to resource-managed
kzalloc.
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/can/usb/usb_8dev.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/net/can/usb/usb_8dev.c b/drivers/net/can/usb/usb_8dev.c index ef674ecb82f8..69c10f3b4e27 100644 --- a/drivers/net/can/usb/usb_8dev.c +++ b/drivers/net/can/usb/usb_8dev.c @@ -957,8 +957,8 @@ static int usb_8dev_probe(struct usb_interface *intf, for (i = 0; i < MAX_TX_URBS; i++) priv->tx_contexts[i].echo_index = MAX_TX_URBS; - priv->cmd_msg_buffer = kzalloc(sizeof(struct usb_8dev_cmd_msg), - GFP_KERNEL); + priv->cmd_msg_buffer = devm_kzalloc(&intf->dev, sizeof(struct usb_8dev_cmd_msg), + GFP_KERNEL); if (!priv->cmd_msg_buffer) goto cleanup_candev; @@ -972,7 +972,7 @@ static int usb_8dev_probe(struct usb_interface *intf, if (err) { netdev_err(netdev, "couldn't register CAN device: %d\n", err); - goto cleanup_cmd_msg_buffer; + goto cleanup_candev; } err = usb_8dev_cmd_version(priv, &version); @@ -993,9 +993,6 @@ static int usb_8dev_probe(struct usb_interface *intf, cleanup_unregister_candev: unregister_netdev(priv->netdev); -cleanup_cmd_msg_buffer: - kfree(priv->cmd_msg_buffer); - cleanup_candev: free_candev(netdev); |