aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/can/usb/usb_8dev.c
diff options
context:
space:
mode:
authorMarc Kleine-Budde <mkl@pengutronix.de>2017-03-02 06:03:40 -0500
committerMarc Kleine-Budde <mkl@pengutronix.de>2017-03-03 07:00:07 -0500
commit7c42631376306fb3f34d51fda546b50a9b6dd6ec (patch)
treed34ad66c8d1c6a8808b0a22b5cfeb5ac1abd97f4 /drivers/net/can/usb/usb_8dev.c
parent540a27aef355e3fd8c598600d4a3c8f92127ee05 (diff)
can: usb_8dev: Fix memory leak of priv->cmd_msg_buffer
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>
Diffstat (limited to 'drivers/net/can/usb/usb_8dev.c')
-rw-r--r--drivers/net/can/usb/usb_8dev.c9
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 108a30e15097..d000cb62d6ae 100644
--- a/drivers/net/can/usb/usb_8dev.c
+++ b/drivers/net/can/usb/usb_8dev.c
@@ -951,8 +951,8 @@ static int usb_8dev_probe(struct usb_interface *intf,
951 for (i = 0; i < MAX_TX_URBS; i++) 951 for (i = 0; i < MAX_TX_URBS; i++)
952 priv->tx_contexts[i].echo_index = MAX_TX_URBS; 952 priv->tx_contexts[i].echo_index = MAX_TX_URBS;
953 953
954 priv->cmd_msg_buffer = kzalloc(sizeof(struct usb_8dev_cmd_msg), 954 priv->cmd_msg_buffer = devm_kzalloc(&intf->dev, sizeof(struct usb_8dev_cmd_msg),
955 GFP_KERNEL); 955 GFP_KERNEL);
956 if (!priv->cmd_msg_buffer) 956 if (!priv->cmd_msg_buffer)
957 goto cleanup_candev; 957 goto cleanup_candev;
958 958
@@ -966,7 +966,7 @@ static int usb_8dev_probe(struct usb_interface *intf,
966 if (err) { 966 if (err) {
967 netdev_err(netdev, 967 netdev_err(netdev,
968 "couldn't register CAN device: %d\n", err); 968 "couldn't register CAN device: %d\n", err);
969 goto cleanup_cmd_msg_buffer; 969 goto cleanup_candev;
970 } 970 }
971 971
972 err = usb_8dev_cmd_version(priv, &version); 972 err = usb_8dev_cmd_version(priv, &version);
@@ -987,9 +987,6 @@ static int usb_8dev_probe(struct usb_interface *intf,
987cleanup_unregister_candev: 987cleanup_unregister_candev:
988 unregister_netdev(priv->netdev); 988 unregister_netdev(priv->netdev);
989 989
990cleanup_cmd_msg_buffer:
991 kfree(priv->cmd_msg_buffer);
992
993cleanup_candev: 990cleanup_candev:
994 free_candev(netdev); 991 free_candev(netdev);
995 992