Message ID | 20221120101414.6071-1-niejianglei2021@163.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | can: mcba_usb: fix potential resource leak in mcba_usb_xmit_cmd() | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Series ignored based on subject |
On 20.11.2022 18:14:14, Jianglei Nie wrote: > mcba_usb_xmit_cmd() gets free ctx by mcba_usb_get_free_ctx(). When > mcba_usb_xmit() fails, the ctx should be freed with mcba_usb_free_ctx() > like mcba_usb_start_xmit() does in label "xmit_failed" to avoid potential > resource leak. > > Fix it by calling mcba_usb_free_ctx() when mcba_usb_xmit() fails. > > Signed-off-by: Jianglei Nie <niejianglei2021@163.com> Applied to linux-can. Thanks, Marc
diff --git a/drivers/net/can/usb/mcba_usb.c b/drivers/net/can/usb/mcba_usb.c index 218b098b261d..471f6be6e030 100644 --- a/drivers/net/can/usb/mcba_usb.c +++ b/drivers/net/can/usb/mcba_usb.c @@ -380,9 +380,11 @@ static void mcba_usb_xmit_cmd(struct mcba_priv *priv, } err = mcba_usb_xmit(priv, usb_msg, ctx); - if (err) + if (err) { + mcba_usb_free_ctx(ctx); netdev_err(priv->netdev, "Failed to send cmd (%d)", usb_msg->cmd_id); + } } static void mcba_usb_xmit_change_bitrate(struct mcba_priv *priv, u16 bitrate)
mcba_usb_xmit_cmd() gets free ctx by mcba_usb_get_free_ctx(). When mcba_usb_xmit() fails, the ctx should be freed with mcba_usb_free_ctx() like mcba_usb_start_xmit() does in label "xmit_failed" to avoid potential resource leak. Fix it by calling mcba_usb_free_ctx() when mcba_usb_xmit() fails. Signed-off-by: Jianglei Nie <niejianglei2021@163.com> --- drivers/net/can/usb/mcba_usb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)