]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/4.4.53/can-usb_8dev-fix-memory-leak-of-priv-cmd_msg_buffer.patch
Linux 3.18.140
[thirdparty/kernel/stable-queue.git] / releases / 4.4.53 / can-usb_8dev-fix-memory-leak-of-priv-cmd_msg_buffer.patch
1 From 7c42631376306fb3f34d51fda546b50a9b6dd6ec Mon Sep 17 00:00:00 2001
2 From: Marc Kleine-Budde <mkl@pengutronix.de>
3 Date: Thu, 2 Mar 2017 12:03:40 +0100
4 Subject: can: usb_8dev: Fix memory leak of priv->cmd_msg_buffer
5
6 From: Marc Kleine-Budde <mkl@pengutronix.de>
7
8 commit 7c42631376306fb3f34d51fda546b50a9b6dd6ec upstream.
9
10 The priv->cmd_msg_buffer is allocated in the probe function, but never
11 kfree()ed. This patch converts the kzalloc() to resource-managed
12 kzalloc.
13
14 Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
15 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
16
17 ---
18 drivers/net/can/usb/usb_8dev.c | 9 +++------
19 1 file changed, 3 insertions(+), 6 deletions(-)
20
21 --- a/drivers/net/can/usb/usb_8dev.c
22 +++ b/drivers/net/can/usb/usb_8dev.c
23 @@ -954,8 +954,8 @@ static int usb_8dev_probe(struct usb_int
24 for (i = 0; i < MAX_TX_URBS; i++)
25 priv->tx_contexts[i].echo_index = MAX_TX_URBS;
26
27 - priv->cmd_msg_buffer = kzalloc(sizeof(struct usb_8dev_cmd_msg),
28 - GFP_KERNEL);
29 + priv->cmd_msg_buffer = devm_kzalloc(&intf->dev, sizeof(struct usb_8dev_cmd_msg),
30 + GFP_KERNEL);
31 if (!priv->cmd_msg_buffer)
32 goto cleanup_candev;
33
34 @@ -969,7 +969,7 @@ static int usb_8dev_probe(struct usb_int
35 if (err) {
36 netdev_err(netdev,
37 "couldn't register CAN device: %d\n", err);
38 - goto cleanup_cmd_msg_buffer;
39 + goto cleanup_candev;
40 }
41
42 err = usb_8dev_cmd_version(priv, &version);
43 @@ -990,9 +990,6 @@ static int usb_8dev_probe(struct usb_int
44 cleanup_unregister_candev:
45 unregister_netdev(priv->netdev);
46
47 -cleanup_cmd_msg_buffer:
48 - kfree(priv->cmd_msg_buffer);
49 -
50 cleanup_candev:
51 free_candev(netdev);
52