================================================================== BUG: KASAN: use-after-free in memset include/linux/string.h:337 [inline] BUG: KASAN: use-after-free in __ext4_expand_extra_isize+0x16f/0x240 fs/ext4/inode.c:5897 Write of size 50331648 at addr ffff8881a9cf2080 by task syz-executor4/8431 CPU: 0 PID: 8431 Comm: syz-executor4 Not tainted 4.20.0-rc6+ #154 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 list_del corruption. next->prev should be ffff888181a9c430, but was 0000000000000000 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 check_memory_region_inline mm/kasan/kasan.c:260 [inline] check_memory_region+0x13e/0x1b0 mm/kasan/kasan.c:267 memset+0x23/0x40 mm/kasan/kasan.c:285 memset include/linux/string.h:337 [inline] __ext4_expand_extra_isize+0x16f/0x240 fs/ext4/inode.c:5897 ext4_try_to_expand_extra_isize fs/ext4/inode.c:5949 [inline] ext4_mark_inode_dirty+0x8f9/0xb20 fs/ext4/inode.c:6025 ext4_ext_tree_init+0x105/0x140 fs/ext4/extents.c:856 __ext4_new_inode+0x5395/0x65a0 fs/ext4/ialloc.c:1169 ext4_symlink+0x4b7/0x1130 fs/ext4/namei.c:3096 vfs_symlink+0x37a/0x5d0 fs/namei.c:4127 do_symlinkat+0x242/0x2d0 fs/namei.c:4154 __do_sys_symlink fs/namei.c:4173 [inline] __se_sys_symlink fs/namei.c:4171 [inline] __x64_sys_symlink+0x59/0x80 fs/namei.c:4171 do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x457397 Code: 0f 1f 00 b8 5c 00 00 00 0f 05 48 3d 01 f0 ff ff 0f 83 bd b6 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 b8 58 00 00 00 0f 05 <48> 3d 01 f0 ff ff 0f 83 9d b6 fb ff c3 66 2e 0f 1f 84 00 00 00 00 RSP: 002b:00007ffd24f49eb8 EFLAGS: 00000206 ORIG_RAX: 0000000000000058 RAX: ffffffffffffffda RBX: 0000000000000001 RCX: 0000000000457397 RDX: 00007ffd24f49f33 RSI: 00000000004bd097 RDI: 00007ffd24f49f20 RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000013 R10: 0000000000000075 R11: 0000000000000206 R12: 0000000000000000 R13: 0000000000000001 R14: 0000000000001ce5 R15: 0000000000000004 The buggy address belongs to the page: ------------[ cut here ]------------ page:ffffea0006a73c80 count:2 mapcount:0 mapping:ffff8881cc8b4658 index:0x449 kernel BUG at lib/list_debug.c:56! flags: 0x2fffc000000203a(referenced|dirty|lru|active|private) invalid opcode: 0000 [#1] PREEMPT SMP KASAN raw: 02fffc000000203a ffffea000612e5c8 ffffea0006c4c748 ffff8881cc8b4658 CPU: 1 PID: 8412 Comm: syz-executor5 Not tainted 4.20.0-rc6+ #154 raw: 0000000000000449 ffff8881af6d30a8 00000002ffffffff ffff888182204640 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 page dumped because: kasan: bad access detected RIP: 0010:__list_del_entry_valid.cold.1+0x37/0x4a lib/list_debug.c:54 page->mem_cgroup:ffff888182204640 Code: e8 66 92 d2 fd 0f 0b 4c 89 ea 48 89 de 48 c7 c7 e0 d2 60 88 e8 52 92 d2 fd 0f 0b 48 89 de 48 c7 c7 40 d4 60 88 e8 41 92 d2 fd <0f> 0b 48 89 de 48 c7 c7 e0 d3 60 88 e8 30 92 d2 fd 0f 0b 48 89 d9 RSP: 0018:ffff88817c146d98 EFLAGS: 00010086 Memory state around the buggy address: RAX: 0000000000000054 RBX: ffff888181a9c430 RCX: 0000000000000000 ffff8881a9cf7f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 RDX: 0000000000000000 RSI: ffffffff8165e495 RDI: 0000000000000005 ffff8881a9cf7f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 RBP: ffff88817c146db0 R08: ffff8881bcf2a5c0 R09: ffffed103b5e5020 >ffff8881a9cf8000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff R10: ffffed103b5e5020 R11: ffff8881daf28107 R12: ffff8881d3b6e670 ^ R13: ffff8881ad83c2b0 R14: ffff8881ce694300 R15: ffff8881daf2cc80 ffff8881a9cf8080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff FS: 0000000000c0d940(0000) GS:ffff8881daf00000(0000) knlGS:0000000000000000 ffff8881a9cf8100: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 ================================================================== CR2: 00007ffe8ecfaff0 CR3: 00000001d3b32000 CR4: 00000000001406e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: __list_del_entry include/linux/list.h:117 [inline] list_move include/linux/list.h:170 [inline] pick_next_task_fair+0x905/0x1b30 kernel/sched/fair.c:6745 pick_next_task kernel/sched/core.c:3318 [inline] __schedule+0x487/0x21d0 kernel/sched/core.c:3446 schedule+0xfe/0x460 kernel/sched/core.c:3516 freezable_schedule include/linux/freezer.h:172 [inline] futex_wait_queue_me+0x3f9/0x840 kernel/futex.c:2530 futex_wait+0x45c/0xa50 kernel/futex.c:2645 do_futex+0x31a/0x26d0 kernel/futex.c:3528 __do_sys_futex kernel/futex.c:3589 [inline] __se_sys_futex kernel/futex.c:3557 [inline] __x64_sys_futex+0x472/0x6a0 kernel/futex.c:3557 do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x457669 Code: fd b3 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 cb b3 fb ff c3 66 2e 0f 1f 84 00 00 00 00 RSP: 002b:00007ffc2338c5b8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca RAX: ffffffffffffffda RBX: 000000000000002d RCX: 0000000000457669 RDX: 0000000000000000 RSI: 0000000000000080 RDI: 000000000072bf0c RBP: 000000000072bf00 R08: 0000000000000000 R09: 0000000000000000 R10: 00007ffc2338c680 R11: 0000000000000246 R12: 00000000000003e8 R13: 000000000021b518 R14: 000000000021b4eb R15: 000000000072bf0c Modules linked in: ====================================================== WARNING: possible circular locking dependency detected 4.20.0-rc6+ #154 Not tainted ------------------------------------------------------ syz-executor5/8412 is trying to acquire lock: 000000007272e182 ((console_sem).lock){-.-.}, at: down_trylock+0x13/0x70 kernel/locking/semaphore.c:136 but task is already holding lock: 00000000854b31b2 (&rq->lock){-.-.}, at: rq_lock kernel/sched/sched.h:1124 [inline] 00000000854b31b2 (&rq->lock){-.-.}, at: __schedule+0x236/0x21d0 kernel/sched/core.c:3410 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #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:1124 [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+0x9f5/0xa30 init/main.c:745 x86_64_start_reservations+0x29/0x2b arch/x86/kernel/head64.c:470 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/0x1440 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 kauditd_printk_skb kernel/audit.c:546 [inline] kauditd_hold_skb.cold.21+0x3f/0x4e kernel/audit.c:579 kauditd_send_queue+0x13b/0x180 kernel/audit.c:742 kauditd_thread+0x7d2/0xb60 kernel/audit.c:868 kthread+0x35a/0x440 kernel/kthread.c:246 ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352 -> #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 __list_del_entry_valid.cold.1+0x37/0x4a lib/list_debug.c:54 __list_del_entry include/linux/list.h:117 [inline] list_move include/linux/list.h:170 [inline] pick_next_task_fair+0x905/0x1b30 kernel/sched/fair.c:6745 pick_next_task kernel/sched/core.c:3318 [inline] __schedule+0x487/0x21d0 kernel/sched/core.c:3446 schedule+0xfe/0x460 kernel/sched/core.c:3516 freezable_schedule include/linux/freezer.h:172 [inline] futex_wait_queue_me+0x3f9/0x840 kernel/futex.c:2530 futex_wait+0x45c/0xa50 kernel/futex.c:2645 do_futex+0x31a/0x26d0 kernel/futex.c:3528 __do_sys_futex kernel/futex.c:3589 [inline] __se_sys_futex kernel/futex.c:3557 [inline] __x64_sys_futex+0x472/0x6a0 kernel/futex.c:3557 do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe other info that might help us debug this: Chain exists of: (console_sem).lock --> &p->pi_lock --> &rq->lock Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&rq->lock); lock(&p->pi_lock); lock(&rq->lock); lock((console_sem).lock); *** DEADLOCK *** 1 lock held by syz-executor5/8412: #0: 00000000854b31b2 (&rq->lock){-.-.}, at: rq_lock kernel/sched/sched.h:1124 [inline] #0: 00000000854b31b2 (&rq->lock){-.-.}, at: __schedule+0x236/0x21d0 kernel/sched/core.c:3410 stack backtrace: CPU: 1 PID: 8412 Comm: syz-executor5 Not tainted 4.20.0-rc6+ #154 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 __list_del_entry_valid.cold.1+0x37/0x4a lib/list_debug.c:54 __list_del_entry include/linux/list.h:117 [inline] list_move include/linux/list.h:170 [inline] pick_next_task_fair+0x905/0x1b30 kernel/sched/fair.c:6745 pick_next_task kernel/sched/core.c:3318 [inline] __schedule+0x487/0x21d0 kernel/sched/core.c:3446 schedule+0xfe/0x460 kernel/sched/core.c:3516 freezable_schedule include/linux/freezer.h:172 [inline] futex_wait_queue_me+0x3f9/0x840 kernel/futex.c:2530 futex_wait+0x45c/0xa50 kernel/futex.c:2645 do_futex+0x31a/0x26d0 kernel/futex.c:3528 __do_sys_futex kernel/futex.c:3589 [inline] __se_sys_futex kernel/futex.c:3557 [inline] __x64_sys_futex+0x472/0x6a0 kernel/futex.c:3557 do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x457669 Code: fd b3 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 cb b3 fb ff c3 66 2e 0f 1f 84 00 00 00 00 RSP: 002b:00007ffc2338c5b8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca RAX: ffffffffffffffda RBX: 000000000000002d RCX: 0000000000457669 RDX: 0000000000000000 RSI: 0000000000000080 RDI: 000000000072bf0c RBP: 000000000072bf00 R08: 0000000000000000 R09: 0000000000000000 R10: 00007ffc2338c680 R11: 0000000000000246 R12: 00000000000003e8 R13: 000000000021b518 R14: 000000000021b4eb R15: 000000000072bf0c ---[ end trace 568bfde9fbb657fd ]--- RIP: 0010:__list_del_entry_valid.cold.1+0x37/0x4a lib/list_debug.c:54 Code: e8 66 92 d2 fd 0f 0b 4c 89 ea 48 89 de 48 c7 c7 e0 d2 60 88 e8 52 92 d2 fd 0f 0b 48 89 de 48 c7 c7 40 d4 60 88 e8 41 92 d2 fd <0f> 0b 48 89 de 48 c7 c7 e0 d3 60 88 e8 30 92 d2 fd 0f 0b 48 89 d9 RSP: 0018:ffff88817c146d98 EFLAGS: 00010086 RAX: 0000000000000054 RBX: ffff888181a9c430 RCX: 0000000000000000 RDX: 0000000000000000 RSI: ffffffff8165e495 RDI: 0000000000000005 RBP: ffff88817c146db0 R08: ffff8881bcf2a5c0 R09: ffffed103b5e5020 R10: ffffed103b5e5020 R11: ffff8881daf28107 R12: ffff8881d3b6e670 R13: ffff8881ad83c2b0 R14: ffff8881ce694300 R15: ffff8881daf2cc80 FS: 0000000000c0d940(0000) GS:ffff8881daf00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007ffe8ecfaff0 CR3: 00000001d3b32000 CR4: 00000000001406e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400