]> www.infradead.org Git - users/hch/misc.git/commitdiff
HID: corsair-void: Add missing delayed work cancel for headset status
authorStuart Hayhurst <stuart.a.hayhurst@gmail.com>
Tue, 21 Jan 2025 20:00:07 +0000 (20:00 +0000)
committerJiri Kosina <jkosina@suse.com>
Mon, 3 Feb 2025 09:51:24 +0000 (10:51 +0100)
The cancel_delayed_work_sync() call was missed, causing a use-after-free
in corsair_void_remove().

Reported-by: yan kang <kangyan91@outlook.com>
Reported-by: yue sun <samsun1006219@gmail.com>
Closes: https://lore.kernel.org/all/SY8P300MB042106286A2536707D2FB736A1E42@SY8P300MB0421.AUSP300.PROD.OUTLOOK.COM/
Closes: https://lore.kernel.org/all/SY8P300MB0421872E0AE934C9616FA61EA1E42@SY8P300MB0421.AUSP300.PROD.OUTLOOK.COM/
Fixes: 6ea2a6fd3872 ("HID: corsair-void: Add Corsair Void headset family driver")
Cc: stable@vger.kernel.org
Signed-off-by: Stuart Hayhurst <stuart.a.hayhurst@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
drivers/hid/hid-corsair-void.c

index 6ece56b850fc0213ef1715c726172088352706f8..bd8f3d849b58d660e89ae76937385150367258a6 100644 (file)
@@ -726,6 +726,7 @@ static void corsair_void_remove(struct hid_device *hid_dev)
        if (drvdata->battery)
                power_supply_unregister(drvdata->battery);
 
+       cancel_delayed_work_sync(&drvdata->delayed_status_work);
        cancel_delayed_work_sync(&drvdata->delayed_firmware_work);
        sysfs_remove_group(&hid_dev->dev.kobj, &corsair_void_attr_group);
 }