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>
This commit is contained in:
Marc Kleine-Budde 2017-03-02 12:03:40 +01:00
parent 540a27aef3
commit 7c42631376
1 changed files with 3 additions and 6 deletions

View File

@ -951,7 +951,7 @@ static int usb_8dev_probe(struct usb_interface *intf,
for (i = 0; i < MAX_TX_URBS; i++) for (i = 0; i < MAX_TX_URBS; i++)
priv->tx_contexts[i].echo_index = MAX_TX_URBS; priv->tx_contexts[i].echo_index = MAX_TX_URBS;
priv->cmd_msg_buffer = kzalloc(sizeof(struct usb_8dev_cmd_msg), priv->cmd_msg_buffer = devm_kzalloc(&intf->dev, sizeof(struct usb_8dev_cmd_msg),
GFP_KERNEL); GFP_KERNEL);
if (!priv->cmd_msg_buffer) if (!priv->cmd_msg_buffer)
goto cleanup_candev; goto cleanup_candev;
@ -966,7 +966,7 @@ static int usb_8dev_probe(struct usb_interface *intf,
if (err) { if (err) {
netdev_err(netdev, netdev_err(netdev,
"couldn't register CAN device: %d\n", err); "couldn't register CAN device: %d\n", err);
goto cleanup_cmd_msg_buffer; goto cleanup_candev;
} }
err = usb_8dev_cmd_version(priv, &version); err = usb_8dev_cmd_version(priv, &version);
@ -987,9 +987,6 @@ static int usb_8dev_probe(struct usb_interface *intf,
cleanup_unregister_candev: cleanup_unregister_candev:
unregister_netdev(priv->netdev); unregister_netdev(priv->netdev);
cleanup_cmd_msg_buffer:
kfree(priv->cmd_msg_buffer);
cleanup_candev: cleanup_candev:
free_candev(netdev); free_candev(netdev);