syzbot


KASAN: stack-out-of-bounds Read in debug_check_no_obj_freed (6)

Status: auto-closed as invalid on 2019/06/21 01:44
Subsystems: kernel
[Documentation on labels]
Reported-by: syzbot+89bf9105d56addb73b6f@syzkaller.appspotmail.com
First crash: 1977d, last: 1944d
Similar bugs (5)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KASAN: stack-out-of-bounds Read in debug_check_no_obj_freed (2) mm 1 2113d 2113d 0/26 closed as invalid on 2018/07/07 06:58
upstream KASAN: stack-out-of-bounds Read in debug_check_no_obj_freed fs 1 2114d 2114d 0/26 closed as invalid on 2018/07/06 15:28
upstream KASAN: stack-out-of-bounds Read in debug_check_no_obj_freed (3) kernel 1 2113d 2113d 0/26 closed as invalid on 2018/07/07 11:48
upstream KASAN: stack-out-of-bounds Read in debug_check_no_obj_freed (5) mm 4 2097d 2103d 8/26 fixed on 2018/08/07 13:43
upstream KASAN: stack-out-of-bounds Read in debug_check_no_obj_freed (4) mm 1 2112d 2112d 0/26 closed as invalid on 2018/07/08 10:03

Sample crash report:
==================================================================
------------[ cut here ]------------
BUG: KASAN: stack-out-of-bounds in __debug_check_no_obj_freed lib/debugobjects.c:778 [inline]
BUG: KASAN: stack-out-of-bounds in debug_check_no_obj_freed+0x45f/0x58d lib/debugobjects.c:818
ODEBUG: deactivate not available (active state 0) object type: hrtimer hint: tick_sched_timer+0x0/0x130 kernel/time/tick-sched.c:66
Read of size 8 at addr ffff8881da94b578 by task blkid/15578
WARNING: CPU: 0 PID: 15573 at lib/debugobjects.c:329 debug_print_object+0x16a/0x210 lib/debugobjects.c:326

Kernel panic - not syncing: panic_on_warn set ...
CPU: 1 PID: 15578 Comm: blkid Not tainted 4.20.0-rc4+ #325
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0x244/0x39d lib/dump_stack.c:113
 print_address_description.cold.7+0x9/0x1ff mm/kasan/report.c:256
 kasan_report_error mm/kasan/report.c:354 [inline]
 kasan_report.cold.8+0x242/0x309 mm/kasan/report.c:412
 __asan_report_load8_noabort+0x14/0x20 mm/kasan/report.c:433
 __debug_check_no_obj_freed lib/debugobjects.c:778 [inline]
 debug_check_no_obj_freed+0x45f/0x58d lib/debugobjects.c:818
 kmem_cache_free+0x202/0x290 mm/slab.c:3759
 vm_area_free+0x1c/0x20 kernel/fork.c:350
 remove_vma+0x13a/0x180 mm/mmap.c:185
 exit_mmap+0x364/0x590 mm/mmap.c:3156
 __mmput kernel/fork.c:1045 [inline]
 mmput+0x247/0x610 kernel/fork.c:1066
 exit_mm kernel/exit.c:545 [inline]
 do_exit+0xe74/0x26d0 kernel/exit.c:854
 do_group_exit+0x177/0x440 kernel/exit.c:970
 get_signal+0x8b0/0x1980 kernel/signal.c:2517
 do_signal+0x9c/0x21c0 arch/x86/kernel/signal.c:816
 exit_to_usermode_loop+0x2e5/0x380 arch/x86/entry/common.c:162
 prepare_exit_to_usermode+0x342/0x3b0 arch/x86/entry/common.c:197
 retint_user+0x8/0x18
RIP: 0033:0x7f27140277d6
Code: Bad RIP value.
RSP: 002b:00007fffe81094d0 EFLAGS: 00010602
RAX: 00007f27140277d0 RBX: 00007f27147769a8 RCX: 0000000000000001
RDX: 00000000000000c0 RSI: 0000000000000025 RDI: 0000000000000002
RBP: 00007fffe81095c0 R08: 0000000000000001 R09: 000000000000002f
R10: 00007f2713fc2af0 R11: 00007fffe8109310 R12: 00007f2713fa4000
R13: 00007f271432b038 R14: 00007f2713fc2ac0 R15: 00007f271432bd98

CPU: 0 PID: 15573 Comm: syz-executor3 Not tainted 4.20.0-rc4+ #325
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
The buggy address belongs to the object at ffff8881da94b000
 which belongs to the cache *I of size -30591
Call Trace:
The buggy address is located 31991 bytes to the right of
 -30591-byte region [ffff8881da94b000, ffff8881da943881)
The buggy address belongs to the page:
page:ffffea00076a52c0 count:1 mapcount:0 mapping:ffff8881da813e40 index:0xffff8881da94bfb9
flags: 0x2fffc0000000200(slab)
raw: 02fffc0000000200 ffffea0006f4cac8 ffffea00071cf7c8 ffff8881da813e40
raw: ffff8881da94bfb9 ffff8881da94b000 0000000100000047 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff8881da94b400: f1 f8 f2 f2 f2 00 00 00 00 00 00 00 00 00 00 00
 ffff8881da94b480: 00 fc fc 00 00 00 00 00 fc fc 00 00 00 00 00 00
>ffff8881da94b500: 00 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1
                                                                ^
 ffff8881da94b580: f1 00 f2 f2 f2 f2 f2 f2 f2 f8 f2 f2 f2 00 00 00
 ffff8881da94b600: 00 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1
==================================================================
kasan: CONFIG_KASAN_INLINE enabled
kasan: GPF could be caused by NULL-ptr deref or user memory access
general protection fault: 0000 [#1] PREEMPT SMP KASAN
CPU: 1 PID: 15578 Comm: blkid Tainted: G    B             4.20.0-rc4+ #325
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
RIP: 0010:__debug_check_no_obj_freed lib/debugobjects.c:778 [inline]
RIP: 0010:debug_check_no_obj_freed+0x1bb/0x58d lib/debugobjects.c:818
Code: 48 8b b5 48 ff ff ff 48 c7 c0 60 09 1e 8b 4c 8b 2c 30 4d 85 ed 0f 84 87 02 00 00 31 f6 4d 89 e7 41 89 f4 4c 89 e8 48 c1 e8 03 <42> 80 3c 30 00 0f 85 91 02 00 00 49 8d 7d 18 41 83 c4 01 49 8b 5d
RSP: 0018:ffff88818d987088 EFLAGS: 00010807
RAX: 11a90ae83cb1290a RBX: 8d485741e5894855 RCX: ffffffff83941ff9
RDX: fffc0000000000bc RSI: 0000000000000008 RDI: ffffffff86b206b8
RBP: ffff88818d987178 R08: ffff8881c2d38440 R09: fffffbfff12c7250
R10: fffffbfff12c7250 R11: ffffffff89639283 R12: 0000000000000009
R13: 8d485741e5894855 R14: dffffc0000000000 R15: ffffffff8b20ba28
FS:  00007f271476e740(0000) GS:ffff8881daf00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f27140277ac CR3: 00000001b896a000 CR4: 00000000001406e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 kmem_cache_free+0x202/0x290 mm/slab.c:3759
 vm_area_free+0x1c/0x20 kernel/fork.c:350
 remove_vma+0x13a/0x180 mm/mmap.c:185
 exit_mmap+0x364/0x590 mm/mmap.c:3156
 __mmput kernel/fork.c:1045 [inline]
 mmput+0x247/0x610 kernel/fork.c:1066
 exit_mm kernel/exit.c:545 [inline]
 do_exit+0xe74/0x26d0 kernel/exit.c:854
 do_group_exit+0x177/0x440 kernel/exit.c:970
 get_signal+0x8b0/0x1980 kernel/signal.c:2517
 do_signal+0x9c/0x21c0 arch/x86/kernel/signal.c:816
 exit_to_usermode_loop+0x2e5/0x380 arch/x86/entry/common.c:162
 prepare_exit_to_usermode+0x342/0x3b0 arch/x86/entry/common.c:197
 retint_user+0x8/0x18
RIP: 0033:0x7f27140277d6
Code: Bad RIP value.
RSP: 002b:00007fffe81094d0 EFLAGS: 00010602
RAX: 00007f27140277d0 RBX: 00007f27147769a8 RCX: 0000000000000001
RDX: 00000000000000c0 RSI: 0000000000000025 RDI: 0000000000000002
RBP: 00007fffe81095c0 R08: 0000000000000001 R09: 000000000000002f
R10: 00007f2713fc2af0 R11: 00007fffe8109310 R12: 00007f2713fa4000
R13: 00007f271432b038 R14: 00007f2713fc2ac0 R15: 00007f271432bd98
Modules linked in:
---[ end trace aaead4d970329c4d ]---
RIP: 0010:__debug_check_no_obj_freed lib/debugobjects.c:778 [inline]
RIP: 0010:debug_check_no_obj_freed+0x1bb/0x58d lib/debugobjects.c:818
Code: 48 8b b5 48 ff ff ff 48 c7 c0 60 09 1e 8b 4c 8b 2c 30 4d 85 ed 0f 84 87 02 00 00 31 f6 4d 89 e7 41 89 f4 4c 89 e8 48 c1 e8 03 <42> 80 3c 30 00 0f 85 91 02 00 00 49 8d 7d 18 41 83 c4 01 49 8b 5d
RSP: 0018:ffff88818d987088 EFLAGS: 00010807
RAX: 11a90ae83cb1290a RBX: 8d485741e5894855 RCX: ffffffff83941ff9
RDX: fffc0000000000bc RSI: 0000000000000008 RDI: ffffffff86b206b8
RBP: ffff88818d987178 R08: ffff8881c2d38440 R09: fffffbfff12c7250
R10: fffffbfff12c7250 R11: ffffffff89639283 R12: 0000000000000009
R13: 8d485741e5894855 R14: dffffc0000000000 R15: ffffffff8b20ba28
FS:  00007f271476e740(0000) GS:ffff8881daf00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f27140277ac CR3: 00000001b896a000 CR4: 00000000001406e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Shutting down cpus with NMI
Kernel Offset: disabled

======================================================
WARNING: possible circular locking dependency detected
4.20.0-rc4+ #325 Not tainted
------------------------------------------------------
blkid/15578 is trying to acquire lock:
0000000036908483 ((console_sem).lock){-.-.}, at: down_trylock+0x13/0x70 kernel/locking/semaphore.c:136

but task is already holding lock:
0000000078f80431 (report_lock){....}, at: kasan_start_report mm/kasan/report.c:170 [inline]
0000000078f80431 (report_lock){....}, at: kasan_report_error mm/kasan/report.c:346 [inline]
0000000078f80431 (report_lock){....}, at: kasan_report+0x8b/0x110 mm/kasan/report.c:412

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #4 (report_lock){....}:
       __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
       _raw_spin_lock_irqsave+0x99/0xd0 kernel/locking/spinlock.c:152
       kasan_start_report mm/kasan/report.c:170 [inline]
       kasan_report_error mm/kasan/report.c:346 [inline]
       kasan_report+0x8b/0x110 mm/kasan/report.c:412
       __asan_report_load8_noabort+0x14/0x20 mm/kasan/report.c:433
       __debug_check_no_obj_freed lib/debugobjects.c:778 [inline]
       debug_check_no_obj_freed+0x45f/0x58d lib/debugobjects.c:818
       kmem_cache_free+0x202/0x290 mm/slab.c:3759
       vm_area_free+0x1c/0x20 kernel/fork.c:350
       remove_vma+0x13a/0x180 mm/mmap.c:185
       exit_mmap+0x364/0x590 mm/mmap.c:3156
       __mmput kernel/fork.c:1045 [inline]
       mmput+0x247/0x610 kernel/fork.c:1066
       exit_mm kernel/exit.c:545 [inline]
       do_exit+0xe74/0x26d0 kernel/exit.c:854
       do_group_exit+0x177/0x440 kernel/exit.c:970
       get_signal+0x8b0/0x1980 kernel/signal.c:2517
       do_signal+0x9c/0x21c0 arch/x86/kernel/signal.c:816
       exit_to_usermode_loop+0x2e5/0x380 arch/x86/entry/common.c:162
       prepare_exit_to_usermode+0x342/0x3b0 arch/x86/entry/common.c:197
       retint_user+0x8/0x18

-> #3 (&obj_hash[i].lock){-.-.}:
       __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
       _raw_spin_lock_irqsave+0x99/0xd0 kernel/locking/spinlock.c:152
       __debug_object_init+0x127/0x1290 lib/debugobjects.c:384
       debug_object_init+0x16/0x20 lib/debugobjects.c:432
       debug_hrtimer_init kernel/time/hrtimer.c:410 [inline]
       debug_init kernel/time/hrtimer.c:458 [inline]
       hrtimer_init+0x97/0x490 kernel/time/hrtimer.c:1308
       init_dl_task_timer+0x1b/0x50 kernel/sched/deadline.c:1057
       __sched_fork+0x2ae/0x590 kernel/sched/core.c:2166
       init_idle+0x75/0x740 kernel/sched/core.c:5374
       sched_init+0xb33/0xc07 kernel/sched/core.c:6060
       start_kernel+0x4be/0xa2b init/main.c:608
       x86_64_start_reservations+0x2e/0x30 arch/x86/kernel/head64.c:472
       x86_64_start_kernel+0x76/0x79 arch/x86/kernel/head64.c:451
       secondary_startup_64+0xa4/0xb0 arch/x86/kernel/head_64.S:243

-> #2 (&rq->lock){-.-.}:
       __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
       _raw_spin_lock+0x2d/0x40 kernel/locking/spinlock.c:144
       rq_lock kernel/sched/sched.h:1126 [inline]
       task_fork_fair+0xb0/0x6d0 kernel/sched/fair.c:9802
       sched_fork+0x443/0xba0 kernel/sched/core.c:2359
       copy_process+0x25b8/0x87a0 kernel/fork.c:1887
       _do_fork+0x1cb/0x11d0 kernel/fork.c:2216
       kernel_thread+0x34/0x40 kernel/fork.c:2275
       rest_init+0x28/0x372 init/main.c:409
       arch_call_rest_init+0xe/0x1b
       start_kernel+0x9f0/0xa2b init/main.c:745
       x86_64_start_reservations+0x2e/0x30 arch/x86/kernel/head64.c:472
       x86_64_start_kernel+0x76/0x79 arch/x86/kernel/head64.c:451
       secondary_startup_64+0xa4/0xb0 arch/x86/kernel/head_64.S:243

-> #1 (&p->pi_lock){-.-.}:
       __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
       _raw_spin_lock_irqsave+0x99/0xd0 kernel/locking/spinlock.c:152
       try_to_wake_up+0xdc/0x1490 kernel/sched/core.c:1965
       wake_up_process+0x10/0x20 kernel/sched/core.c:2129
       __up.isra.1+0x1c0/0x2a0 kernel/locking/semaphore.c:262
       up+0x13c/0x1c0 kernel/locking/semaphore.c:187
       __up_console_sem+0xbe/0x1b0 kernel/printk/printk.c:236
       console_unlock+0x811/0x1190 kernel/printk/printk.c:2432
       vprintk_emit+0x391/0x990 kernel/printk/printk.c:1922
       vprintk_default+0x28/0x30 kernel/printk/printk.c:1964
       vprintk_func+0x7e/0x181 kernel/printk/printk_safe.c:398
       printk+0xa7/0xcf kernel/printk/printk.c:1997
       check_stack_usage kernel/exit.c:755 [inline]
       do_exit.cold.18+0x57/0x16f kernel/exit.c:916
       do_group_exit+0x177/0x440 kernel/exit.c:970
       __do_sys_exit_group kernel/exit.c:981 [inline]
       __se_sys_exit_group kernel/exit.c:979 [inline]
       __x64_sys_exit_group+0x3e/0x50 kernel/exit.c:979
       do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290
       entry_SYSCALL_64_after_hwframe+0x49/0xbe

-> #0 ((console_sem).lock){-.-.}:
       lock_acquire+0x1ed/0x520 kernel/locking/lockdep.c:3844
       __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
       _raw_spin_lock_irqsave+0x99/0xd0 kernel/locking/spinlock.c:152
       down_trylock+0x13/0x70 kernel/locking/semaphore.c:136
       __down_trylock_console_sem+0xae/0x1f0 kernel/printk/printk.c:219
       console_trylock+0x15/0xa0 kernel/printk/printk.c:2247
       console_trylock_spinning kernel/printk/printk.c:1653 [inline]
       vprintk_emit+0x372/0x990 kernel/printk/printk.c:1921
       vprintk_default+0x28/0x30 kernel/printk/printk.c:1964
       vprintk_func+0x7e/0x181 kernel/printk/printk_safe.c:398
       printk+0xa7/0xcf kernel/printk/printk.c:1997
       kasan_start_report mm/kasan/report.c:171 [inline]
       kasan_report_error mm/kasan/report.c:346 [inline]
       kasan_report+0x9b/0x110 mm/kasan/report.c:412
       __asan_report_load8_noabort+0x14/0x20 mm/kasan/report.c:433
       __debug_check_no_obj_freed lib/debugobjects.c:778 [inline]
       debug_check_no_obj_freed+0x45f/0x58d lib/debugobjects.c:818
       kmem_cache_free+0x202/0x290 mm/slab.c:3759
       vm_area_free+0x1c/0x20 kernel/fork.c:350
       remove_vma+0x13a/0x180 mm/mmap.c:185
       exit_mmap+0x364/0x590 mm/mmap.c:3156
       __mmput kernel/fork.c:1045 [inline]
       mmput+0x247/0x610 kernel/fork.c:1066
       exit_mm kernel/exit.c:545 [inline]
       do_exit+0xe74/0x26d0 kernel/exit.c:854
       do_group_exit+0x177/0x440 kernel/exit.c:970
       get_signal+0x8b0/0x1980 kernel/signal.c:2517
       do_signal+0x9c/0x21c0 arch/x86/kernel/signal.c:816
       exit_to_usermode_loop+0x2e5/0x380 arch/x86/entry/common.c:162
       prepare_exit_to_usermode+0x342/0x3b0 arch/x86/entry/common.c:197
       retint_user+0x8/0x18

other info that might help us debug this:

Chain exists of:
  (console_sem).lock --> &obj_hash[i].lock --> report_lock

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(report_lock);
                               lock(&obj_hash[i].lock);
                               lock(report_lock);
  lock((console_sem).lock);

 *** DEADLOCK ***

2 locks held by blkid/15578:
 #0: 00000000eefcec62 (&obj_hash[i].lock){-.-.}, at: __debug_check_no_obj_freed lib/debugobjects.c:777 [inline]
 #0: 00000000eefcec62 (&obj_hash[i].lock){-.-.}, at: debug_check_no_obj_freed+0x17a/0x58d lib/debugobjects.c:818
 #1: 0000000078f80431 (report_lock){....}, at: kasan_start_report mm/kasan/report.c:170 [inline]
 #1: 0000000078f80431 (report_lock){....}, at: kasan_report_error mm/kasan/report.c:346 [inline]
 #1: 0000000078f80431 (report_lock){....}, at: kasan_report+0x8b/0x110 mm/kasan/report.c:412

stack backtrace:
CPU: 1 PID: 15578 Comm: blkid Not tainted 4.20.0-rc4+ #325
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0x244/0x39d lib/dump_stack.c:113
 print_circular_bug.isra.35.cold.54+0x1bd/0x27d kernel/locking/lockdep.c:1221
 check_prev_add kernel/locking/lockdep.c:1863 [inline]
 check_prevs_add kernel/locking/lockdep.c:1976 [inline]
 validate_chain kernel/locking/lockdep.c:2347 [inline]
 __lock_acquire+0x3399/0x4c20 kernel/locking/lockdep.c:3341
 lock_acquire+0x1ed/0x520 kernel/locking/lockdep.c:3844
 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
 _raw_spin_lock_irqsave+0x99/0xd0 kernel/locking/spinlock.c:152
 down_trylock+0x13/0x70 kernel/locking/semaphore.c:136
 __down_trylock_console_sem+0xae/0x1f0 kernel/printk/printk.c:219
 console_trylock+0x15/0xa0 kernel/printk/printk.c:2247
 console_trylock_spinning kernel/printk/printk.c:1653 [inline]
 vprintk_emit+0x372/0x990 kernel/printk/printk.c:1921
 vprintk_default+0x28/0x30 kernel/printk/printk.c:1964
 vprintk_func+0x7e/0x181 kernel/printk/printk_safe.c:398
 printk+0xa7/0xcf kernel/printk/printk.c:1997
 kasan_start_report mm/kasan/report.c:171 [inline]
 kasan_report_error mm/kasan/report.c:346 [inline]
 kasan_report+0x9b/0x110 mm/kasan/report.c:412
 __asan_report_load8_noabort+0x14/0x20 mm/kasan/report.c:433
 __debug_check_no_obj_freed lib/debugobjects.c:778 [inline]
 debug_check_no_obj_freed+0x45f/0x58d lib/debugobjects.c:818
 kmem_cache_free+0x202/0x290 mm/slab.c:3759
 vm_area_free+0x1c/0x20 kernel/fork.c:350
 remove_vma+0x13a/0x180 mm/mmap.c:185
 exit_mmap+0x364/0x590 mm/mmap.c:3156
 __mmput kernel/fork.c:1045 [inline]
 mmput+0x247/0x610 kernel/fork.c:1066
 exit_mm kernel/exit.c:545 [inline]
 do_exit+0xe74/0x26d0 kernel/exit.c:854
 do_group_exit+0x177/0x440 kernel/exit.c:970
 get_signal+0x8b0/0x1980 kernel/signal.c:2517
 do_signal+0x9c/0x21c0 arch/x86/kernel/signal.c:816
 ? __ba
Lost 26 message(s)!
Rebooting in 86400 seconds..

Crashes (3):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2018/12/04 20:38 net-next-old d9bbd6a1a56e 6ad0ae61 .config console log report ci-upstream-net-kasan-gce
2018/11/19 14:07 net-next-old bae4e109837b adf636a8 .config console log report ci-upstream-net-kasan-gce
2018/12/23 01:43 linux-next 6648e120dd1a e3bd7ab8 .config console log report ci-upstream-linux-next-kasan-gce-root
* Struck through repros no longer work on HEAD.