HID: thrustmaster: fix memory leak in thrustmaster_interrupts()
authorQasim Ijaz <qasdev00@gmail.com>
Thu, 27 Mar 2025 23:11:46 +0000 (23:11 +0000)
committerJiri Kosina <jkosina@suse.com>
Thu, 24 Apr 2025 09:48:13 +0000 (11:48 +0200)
In thrustmaster_interrupts(), the allocated send_buf is not
freed if the usb_check_int_endpoints() check fails, leading
to a memory leak.

Fix this by ensuring send_buf is freed before returning in
the error path.

Fixes: 50420d7c79c3 ("HID: hid-thrustmaster: Fix warning in thrustmaster_probe by adding endpoint check")
Signed-off-by: Qasim Ijaz <qasdev00@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
drivers/hid/hid-thrustmaster.c

index 3b81468a1df297b109a8f90dafb691605ce4cf1b..0bf70664c35ee1f3433fceefab386dec176e1cfb 100644 (file)
@@ -174,6 +174,7 @@ static void thrustmaster_interrupts(struct hid_device *hdev)
        u8 ep_addr[2] = {b_ep, 0};
 
        if (!usb_check_int_endpoints(usbif, ep_addr)) {
+               kfree(send_buf);
                hid_err(hdev, "Unexpected non-int endpoint\n");
                return;
        }