summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorMarc Kleine-Budde <mkl@pengutronix.de>2022-03-29 21:29:43 +0200
committerMarc Kleine-Budde <mkl@pengutronix.de>2022-03-31 09:55:27 +0200
commit50d34a0d151dc7abbdbec781bd7f09f2b3cbf01a (patch)
tree1332ce4f42624ffd542727ebb36701e47c121bcc /drivers
parent136bed0bfd3bc9c95c88aafff2d22ecb3a919f23 (diff)
downloadlinux-rpi-50d34a0d151dc7abbdbec781bd7f09f2b3cbf01a.tar.gz
linux-rpi-50d34a0d151dc7abbdbec781bd7f09f2b3cbf01a.tar.bz2
linux-rpi-50d34a0d151dc7abbdbec781bd7f09f2b3cbf01a.zip
can: gs_usb: gs_make_candev(): fix memory leak for devices with extended bit timing configuration
Some CAN-FD capable devices offer extended bit timing information for the data bit timing. The information must be read with an USB control message. The memory for this message is allocated but not free()ed (in the non error case). This patch adds the missing free. Fixes: 6679f4c5e5a6 ("can: gs_usb: add extended bt_const feature") Link: https://lore.kernel.org/all/20220329193450.659726-1-mkl@pengutronix.de Reported-by: syzbot+4d0ae90a195b269f102d@syzkaller.appspotmail.com Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/can/usb/gs_usb.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/can/usb/gs_usb.c b/drivers/net/can/usb/gs_usb.c
index 67408e316062..b29ba9138866 100644
--- a/drivers/net/can/usb/gs_usb.c
+++ b/drivers/net/can/usb/gs_usb.c
@@ -1092,6 +1092,8 @@ static struct gs_can *gs_make_candev(unsigned int channel,
dev->data_bt_const.brp_inc = le32_to_cpu(bt_const_extended->dbrp_inc);
dev->can.data_bittiming_const = &dev->data_bt_const;
+
+ kfree(bt_const_extended);
}
SET_NETDEV_DEV(netdev, &intf->dev);