Re: [syzbot] KASAN: null-ptr-deref Write in __pm_runtime_resume

From: syzbot
Date: Wed Sep 01 2021 - 18:57:22 EST


syzbot has found a reproducer for the following issue on:

HEAD commit: 835d31d319d9 Merge tag 'media/v5.15-1' of git://git.kernel..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=1374b85d300000
kernel config: https://syzkaller.appspot.com/x/.config?x=9c32e23fada3a0e4
dashboard link: https://syzkaller.appspot.com/bug?extid=7d41312fe3f123a6f605
compiler: gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.1
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=16fde215300000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=11aa9149300000

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+7d41312fe3f123a6f605@xxxxxxxxxxxxxxxxxxxxxxxxx

Bluetooth: : Invalid header checksum
Bluetooth: : Invalid header checksum
==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_read_write include/linux/instrumented.h:101 [inline]
BUG: KASAN: null-ptr-deref in atomic_inc include/linux/atomic/atomic-instrumented.h:181 [inline]
BUG: KASAN: null-ptr-deref in __pm_runtime_resume+0x154/0x180 drivers/base/power/runtime.c:1105
Write of size 4 at addr 0000000000000388 by task kworker/u4:4/244

CPU: 1 PID: 244 Comm: kworker/u4:4 Not tainted 5.14.0-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Workqueue: events_unbound flush_to_ldisc
Call Trace:
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:105
__kasan_report mm/kasan/report.c:423 [inline]
kasan_report.cold+0x66/0xdf mm/kasan/report.c:436
check_region_inline mm/kasan/generic.c:183 [inline]
kasan_check_range+0x13d/0x180 mm/kasan/generic.c:189
instrument_atomic_read_write include/linux/instrumented.h:101 [inline]
atomic_inc include/linux/atomic/atomic-instrumented.h:181 [inline]
__pm_runtime_resume+0x154/0x180 drivers/base/power/runtime.c:1105
pm_runtime_get include/linux/pm_runtime.h:370 [inline]
h5_recv+0x2c4/0x680 drivers/bluetooth/hci_h5.c:590
hci_uart_tty_receive+0x24d/0x710 drivers/bluetooth/hci_ldisc.c:613
tty_ldisc_receive_buf+0x14d/0x190 drivers/tty/tty_buffer.c:475
tty_port_default_receive_buf+0x6e/0xa0 drivers/tty/tty_port.c:39
receive_buf drivers/tty/tty_buffer.c:491 [inline]
flush_to_ldisc+0x20d/0x380 drivers/tty/tty_buffer.c:543
process_one_work+0x9bf/0x16b0 kernel/workqueue.c:2297
worker_thread+0x658/0x11f0 kernel/workqueue.c:2444
kthread+0x3e5/0x4d0 kernel/kthread.c:319
ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
==================================================================
Kernel panic - not syncing: panic_on_warn set ...
CPU: 1 PID: 244 Comm: kworker/u4:4 Tainted: G B 5.14.0-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Workqueue: events_unbound flush_to_ldisc
Call Trace:
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:105
panic+0x306/0x73d kernel/panic.c:232
end_report mm/kasan/report.c:103 [inline]
end_report.cold+0x5a/0x5a mm/kasan/report.c:88
__kasan_report mm/kasan/report.c:426 [inline]
kasan_report.cold+0x71/0xdf mm/kasan/report.c:436
check_region_inline mm/kasan/generic.c:183 [inline]
kasan_check_range+0x13d/0x180 mm/kasan/generic.c:189
instrument_atomic_read_write include/linux/instrumented.h:101 [inline]
atomic_inc include/linux/atomic/atomic-instrumented.h:181 [inline]
__pm_runtime_resume+0x154/0x180 drivers/base/power/runtime.c:1105
pm_runtime_get include/linux/pm_runtime.h:370 [inline]
h5_recv+0x2c4/0x680 drivers/bluetooth/hci_h5.c:590
hci_uart_tty_receive+0x24d/0x710 drivers/bluetooth/hci_ldisc.c:613
tty_ldisc_receive_buf+0x14d/0x190 drivers/tty/tty_buffer.c:475
tty_port_default_receive_buf+0x6e/0xa0 drivers/tty/tty_port.c:39
receive_buf drivers/tty/tty_buffer.c:491 [inline]
flush_to_ldisc+0x20d/0x380 drivers/tty/tty_buffer.c:543
process_one_work+0x9bf/0x16b0 kernel/workqueue.c:2297
worker_thread+0x658/0x11f0 kernel/workqueue.c:2444
kthread+0x3e5/0x4d0 kernel/kthread.c:319
ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
Kernel Offset: disabled
Rebooting in 86400 seconds..