diff options
author | Marc Kleine-Budde <mkl@pengutronix.de> | 2017-03-02 06:03:40 -0500 |
---|---|---|
committer | Marc Kleine-Budde <mkl@pengutronix.de> | 2017-03-03 07:00:07 -0500 |
commit | 7c42631376306fb3f34d51fda546b50a9b6dd6ec (patch) | |
tree | d34ad66c8d1c6a8808b0a22b5cfeb5ac1abd97f4 /drivers/net/can/usb/usb_8dev.c | |
parent | 540a27aef355e3fd8c598600d4a3c8f92127ee05 (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.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 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, | |||
987 | cleanup_unregister_candev: | 987 | cleanup_unregister_candev: |
988 | unregister_netdev(priv->netdev); | 988 | unregister_netdev(priv->netdev); |
989 | 989 | ||
990 | cleanup_cmd_msg_buffer: | ||
991 | kfree(priv->cmd_msg_buffer); | ||
992 | |||
993 | cleanup_candev: | 990 | cleanup_candev: |
994 | free_candev(netdev); | 991 | free_candev(netdev); |
995 | 992 | ||