mirror of https://gitee.com/openkylin/linux.git
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:
parent
540a27aef3
commit
7c42631376
|
@ -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);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue