| From c0f2cb31b5678a892edb6b342fd9b88fd62ab01e Mon Sep 17 00:00:00 2001 |
| From: Marc Kleine-Budde <mkl@pengutronix.de> |
| Date: Thu, 2 Mar 2017 12:03:40 +0100 |
| Subject: [PATCH] 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. |
| |
| Cc: linux-stable <stable@vger.kernel.org> |
| Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/net/can/usb/usb_8dev.c b/drivers/net/can/usb/usb_8dev.c |
| index a731720f1d13..449b2a47f9a8 100644 |
| --- a/drivers/net/can/usb/usb_8dev.c |
| +++ b/drivers/net/can/usb/usb_8dev.c |
| @@ -954,8 +954,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; |
| |
| @@ -969,7 +969,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); |
| @@ -990,9 +990,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); |
| |
| -- |
| 2.12.0 |
| |