Ping Cheng
797c128d3c
HID: wacom: Fix memory leakage caused by kfifo_alloc
...
commit 37309f47e2f5674f3e86cb765312ace42cfcedf5 upstream.
As reported by syzbot below, kfifo_alloc'd memory would not be freed
if a non-zero return value is triggered in wacom_probe. This patch
creates and uses devm_kfifo_alloc to allocate and free itself.
BUG: memory leak
unreferenced object 0xffff88810dc44a00 (size 512):
comm "kworker/1:2", pid 3674, jiffies 4294943617 (age 14.100s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<0000000023e1afac>] kmalloc_array include/linux/slab.h:592 [inline]
[<0000000023e1afac>] __kfifo_alloc+0xad/0x100 lib/kfifo.c:43
[<00000000c477f737>] wacom_probe+0x1a1/0x3b0 drivers/hid/wacom_sys.c:2727
[<00000000b3109aca>] hid_device_probe+0x16b/0x210 drivers/hid/hid-core.c:2281
[<00000000aff7c640>] really_probe+0x159/0x480 drivers/base/dd.c:554
[<00000000778d0bc3>] driver_probe_device+0x84/0x100 drivers/base/dd.c:738
[<000000005108dbb5>] __device_attach_driver+0xee/0x110 drivers/base/dd.c:844
[<00000000efb7c59e>] bus_for_each_drv+0xb7/0x100 drivers/base/bus.c:431
[<0000000024ab1590>] __device_attach+0x122/0x250 drivers/base/dd.c:912
[<000000004c7ac048>] bus_probe_device+0xc6/0xe0 drivers/base/bus.c:491
[<00000000b93050a3>] device_add+0x5ac/0xc30 drivers/base/core.c:2936
[<00000000e5b46ea5>] hid_add_device+0x151/0x390 drivers/hid/hid-core.c:2437
[<00000000c6add147>] usbhid_probe+0x412/0x560 drivers/hid/usbhid/hid-core.c:1407
[<00000000c33acdb4>] usb_probe_interface+0x177/0x370 drivers/usb/core/driver.c:396
[<00000000aff7c640>] really_probe+0x159/0x480 drivers/base/dd.c:554
[<00000000778d0bc3>] driver_probe_device+0x84/0x100 drivers/base/dd.c:738
[<000000005108dbb5>] __device_attach_driver+0xee/0x110 drivers/base/dd.c:844
https://syzkaller.appspot.com/bug?extid=5b49c9695968d7250a26
Reported-by: syzbot+5b49c9695968d7250a26@syzkaller.appspotmail.com
Signed-off-by: Ping Cheng <ping.cheng@wacom.com>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-01-17 14:16:59 +01:00
..
2020-12-26 16:02:43 +01:00
2020-10-22 12:41:00 -07:00
2020-08-25 11:13:29 -07:00
2019-08-05 14:37:15 +02:00
2019-05-30 11:26:32 -07:00
2020-09-22 11:19:55 +02:00
2020-08-17 12:17:52 +02:00
2020-03-13 17:33:11 +01:00
2020-05-06 11:40:03 +02:00
2019-05-21 10:50:45 +02:00
2019-10-03 15:36:40 -04:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-02-18 14:43:51 +01:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-06-05 17:36:37 +02:00
2020-10-15 20:41:43 +02:00
2019-05-30 11:26:32 -07:00
2020-08-17 11:38:49 +02:00
2020-08-17 11:59:09 +02:00
2019-09-03 16:52:04 +02:00
2020-10-23 13:23:44 +02:00
2020-09-09 08:47:38 +02:00
2019-10-03 15:36:40 -04:00
2020-09-01 09:11:24 +02:00
2019-05-30 11:26:32 -07:00
2019-06-05 17:37:04 +02:00
2019-10-03 15:36:40 -04:00
2019-05-30 11:26:32 -07:00
2019-10-03 15:36:40 -04:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-08-22 17:11:58 +02:00
2020-03-18 13:36:21 +01:00
2020-03-16 14:51:05 +01:00
2019-05-30 11:26:37 -07:00
2019-05-30 11:26:32 -07:00
2019-08-05 14:18:42 +02:00
2019-05-30 11:26:32 -07:00
2019-10-03 15:36:40 -04:00
2020-09-28 08:57:28 +00:00
2019-05-30 11:26:32 -07:00
2020-11-12 16:01:13 +01:00
2020-11-12 16:01:13 +01:00
2020-10-22 13:42:34 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-06-05 17:37:10 +02:00
2020-07-07 12:42:27 +02:00
2019-10-03 15:36:40 -04:00
2019-10-03 15:36:40 -04:00
2019-10-03 15:36:40 -04:00
2017-11-02 11:10:55 +01:00
2020-08-23 17:36:59 -05:00
2019-08-22 09:53:08 +02:00
2017-11-02 11:10:55 +01:00
2019-10-03 15:36:40 -04:00
2020-11-22 14:36:06 -08:00
2020-11-19 16:27:51 +01:00
2020-08-17 11:38:49 +02:00
2020-06-16 17:34:14 +02:00
2019-01-14 20:11:01 +01:00
2020-11-05 11:16:53 +01:00
2019-05-30 11:26:37 -07:00
2020-09-02 12:55:46 -07:00
2019-05-30 11:26:32 -07:00
2020-09-22 12:09:54 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-06-05 17:30:28 +02:00
2020-09-03 16:18:55 +02:00
2019-08-22 17:11:58 +02:00
2019-06-05 17:30:28 +02:00
2020-04-01 12:26:12 +02:00
2019-06-05 17:30:28 +02:00
2019-06-05 17:30:28 +02:00
2019-06-05 17:30:28 +02:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:32 -07:00
2019-06-05 17:36:37 +02:00
2019-10-01 16:21:04 +02:00
2020-11-09 12:55:18 +01:00
2018-06-25 15:23:40 +02:00
2019-05-30 11:26:32 -07:00
2020-10-23 16:16:31 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-10-15 20:41:43 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-03-11 11:58:58 +01:00
2020-11-05 11:09:28 +01:00
2019-05-30 11:26:35 -07:00
2020-05-26 11:00:49 +02:00
2019-05-30 11:26:32 -07:00
2020-06-19 09:21:21 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-10-03 15:36:40 -04:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:29:19 -07:00
2019-04-17 16:39:43 +02:00
2020-10-22 11:52:02 +02:00
2020-10-22 11:52:02 +02:00
2019-02-21 12:00:54 +01:00
2019-02-21 12:00:54 +01:00
2019-02-21 12:00:54 +01:00
2020-07-20 12:24:41 +02:00
2019-02-21 12:00:53 +01:00
2020-09-30 22:44:26 +02:00
2019-05-30 11:26:32 -07:00
2020-09-07 16:03:51 +02:00
2019-05-30 11:26:32 -07:00
2020-06-19 14:17:22 +02:00
2020-06-19 14:17:22 +02:00
2019-05-30 11:26:32 -07:00
2019-10-03 15:36:40 -04:00
2019-05-30 11:26:32 -07:00
2020-01-27 15:49:30 +01:00
2020-09-30 22:44:26 +02:00
2020-09-30 22:44:26 +02:00
2020-01-10 15:34:28 +01:00
2021-01-17 14:16:59 +01:00
2020-10-15 20:41:43 +02:00
2019-07-10 01:39:57 +02:00
2019-11-06 21:37:29 +01:00