================================================================== BUG: KASAN: use-after-free in instrument_atomic_read include/linux/instrumented.h:72 [inline] BUG: KASAN: use-after-free in atomic_long_read include/linux/atomic/atomic-instrumented.h:1265 [inline] BUG: KASAN: use-after-free in is_rwsem_reader_owned kernel/locking/rwsem.c:193 [inline] BUG: KASAN: use-after-free in __down_read_common kernel/locking/rwsem.c:1262 [inline] BUG: KASAN: use-after-free in __down_read_common kernel/locking/rwsem.c:1255 [inline] BUG: KASAN: use-after-free in __down_read kernel/locking/rwsem.c:1269 [inline] BUG: KASAN: use-after-free in down_read+0x1d3/0x450 kernel/locking/rwsem.c:1511 Read of size 8 at addr ffff88804c749608 by task syz-executor.3/26142 CPU: 1 PID: 26142 Comm: syz-executor.3 Not tainted 6.1.0-rc2-syzkaller-00105-gb229b6ca5abb #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/11/2022 Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:284 [inline] print_report+0x15e/0x45d mm/kasan/report.c:395 kasan_report+0xbb/0x1f0 mm/kasan/report.c:495 check_region_inline mm/kasan/generic.c:183 [inline] kasan_check_range+0x13d/0x180 mm/kasan/generic.c:189 instrument_atomic_read include/linux/instrumented.h:72 [inline] atomic_long_read include/linux/atomic/atomic-instrumented.h:1265 [inline] is_rwsem_reader_owned kernel/locking/rwsem.c:193 [inline] __down_read_common kernel/locking/rwsem.c:1262 [inline] __down_read_common kernel/locking/rwsem.c:1255 [inline] __down_read kernel/locking/rwsem.c:1269 [inline] down_read+0x1d3/0x450 kernel/locking/rwsem.c:1511 hugetlb_vma_lock_read mm/hugetlb.c:6816 [inline] hugetlb_fault+0x40a/0x2060 mm/hugetlb.c:5859 follow_hugetlb_page+0x3f3/0x1850 mm/hugetlb.c:6301 __get_user_pages+0x2cb/0xf10 mm/gup.c:1202 populate_vma_page_range+0x23d/0x320 mm/gup.c:1587 __mm_populate+0x101/0x3a0 mm/gup.c:1701 mm_populate include/linux/mm.h:2744 [inline] vm_mmap_pgoff+0x1fd/0x270 mm/util.c:525 ksys_mmap_pgoff+0x1c3/0x5a0 mm/mmap.c:1458 do_syscall_32_irqs_on arch/x86/entry/common.c:112 [inline] __do_fast_syscall_32+0x65/0xf0 arch/x86/entry/common.c:178 do_fast_syscall_32+0x2f/0x70 arch/x86/entry/common.c:203 entry_SYSENTER_compat_after_hwframe+0x70/0x82 RIP: 0023:0xf7f24549 Code: 03 74 c0 01 10 05 03 74 b8 01 10 06 03 74 b4 01 10 07 03 74 b0 01 10 08 03 74 d8 01 00 00 00 00 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 8d b4 26 00 00 00 00 8d b4 26 00 00 00 00 RSP: 002b:00000000f7efe5cc EFLAGS: 00000296 ORIG_RAX: 00000000000000c0 RAX: ffffffffffffffda RBX: 0000000020000000 RCX: 0000000000b36000 RDX: 0000000000000003 RSI: 0000000000068831 RDI: 00000000ffffffff RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000296 R12: 0000000000000000 R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 Allocated by task 26142: kasan_save_stack+0x1e/0x40 mm/kasan/common.c:45 kasan_set_track+0x21/0x30 mm/kasan/common.c:52 ____kasan_kmalloc mm/kasan/common.c:371 [inline] ____kasan_kmalloc mm/kasan/common.c:330 [inline] __kasan_kmalloc+0xa1/0xb0 mm/kasan/common.c:380 kmalloc include/linux/slab.h:576 [inline] hugetlb_vma_lock_alloc.part.0+0x3f/0x130 mm/hugetlb.c:6926 hugetlb_vma_lock_alloc mm/hugetlb.c:6682 [inline] hugetlb_reserve_pages+0xa3f/0xe80 mm/hugetlb.c:6551 hugetlbfs_file_mmap+0x40c/0x5c0 fs/hugetlbfs/inode.c:167 call_mmap include/linux/fs.h:2196 [inline] mmap_region+0x6bf/0x1c00 mm/mmap.c:2625 do_mmap+0x825/0xf50 mm/mmap.c:1412 vm_mmap_pgoff+0x1ab/0x270 mm/util.c:520 ksys_mmap_pgoff+0x1c3/0x5a0 mm/mmap.c:1458 do_syscall_32_irqs_on arch/x86/entry/common.c:112 [inline] __do_fast_syscall_32+0x65/0xf0 arch/x86/entry/common.c:178 do_fast_syscall_32+0x2f/0x70 arch/x86/entry/common.c:203 entry_SYSENTER_compat_after_hwframe+0x70/0x82 Freed by task 26143: kasan_save_stack+0x1e/0x40 mm/kasan/common.c:45 kasan_set_track+0x21/0x30 mm/kasan/common.c:52 kasan_save_free_info+0x2a/0x40 mm/kasan/generic.c:511 ____kasan_slab_free mm/kasan/common.c:236 [inline] ____kasan_slab_free+0x160/0x1c0 mm/kasan/common.c:200 kasan_slab_free include/linux/kasan.h:177 [inline] slab_free_hook mm/slub.c:1724 [inline] slab_free_freelist_hook+0x8b/0x1c0 mm/slub.c:1750 slab_free mm/slub.c:3661 [inline] __kmem_cache_free+0xab/0x3b0 mm/slub.c:3674 hugetlb_vma_lock_release mm/hugetlb.c:6871 [inline] kref_put include/linux/kref.h:65 [inline] __hugetlb_vma_unlock_write_put mm/hugetlb.c:6886 [inline] __hugetlb_vma_unlock_write_free mm/hugetlb.c:6894 [inline] __unmap_hugepage_range_final+0x2ad/0x340 mm/hugetlb.c:5215 unmap_single_vma+0x23d/0x2a0 mm/memory.c:1690 zap_page_range+0x38a/0x520 mm/memory.c:1762 madvise_dontneed_single_vma mm/madvise.c:793 [inline] madvise_dontneed_free mm/madvise.c:876 [inline] madvise_vma_behavior+0xee8/0x1cc0 mm/madvise.c:1015 madvise_walk_vmas+0x1c7/0x2b0 mm/madvise.c:1240 do_madvise.part.0+0x24a/0x340 mm/madvise.c:1419 do_madvise mm/madvise.c:1432 [inline] __do_sys_madvise mm/madvise.c:1432 [inline] __se_sys_madvise mm/madvise.c:1430 [inline] __ia32_sys_madvise+0x115/0x150 mm/madvise.c:1430 do_syscall_32_irqs_on arch/x86/entry/common.c:112 [inline] __do_fast_syscall_32+0x65/0xf0 arch/x86/entry/common.c:178 do_fast_syscall_32+0x2f/0x70 arch/x86/entry/common.c:203 entry_SYSENTER_compat_after_hwframe+0x70/0x82 The buggy address belongs to the object at ffff88804c749600 which belongs to the cache kmalloc-192 of size 192 The buggy address is located 8 bytes inside of 192-byte region [ffff88804c749600, ffff88804c7496c0) The buggy address belongs to the physical page: page:ffffea000131d240 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x4c749 flags: 0xfff00000000200(slab|node=0|zone=1|lastcpupid=0x7ff) raw: 00fff00000000200 ffffea000513b100 dead000000000003 ffff888011841a00 raw: 0000000000000000 0000000080100010 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected page_owner tracks the page as allocated page last allocated via order 0, migratetype Unmovable, gfp_mask 0x112cc0(GFP_USER|__GFP_NOWARN|__GFP_NORETRY), pid 24157, tgid 24154 (syz-executor.1), ts 1153132662751, free_ts 1153130801474 prep_new_page mm/page_alloc.c:2538 [inline] get_page_from_freelist+0x10b5/0x2d50 mm/page_alloc.c:4287 __alloc_pages+0x1c7/0x5a0 mm/page_alloc.c:5554 __alloc_pages_node include/linux/gfp.h:223 [inline] alloc_slab_page mm/slub.c:1796 [inline] allocate_slab+0x80/0x300 mm/slub.c:1939 new_slab mm/slub.c:1992 [inline] ___slab_alloc+0xa91/0x1400 mm/slub.c:3180 __slab_alloc.constprop.0+0x56/0xa0 mm/slub.c:3279 slab_alloc_node mm/slub.c:3364 [inline] __kmem_cache_alloc_node+0x191/0x3e0 mm/slub.c:3437 __do_kmalloc_node mm/slab_common.c:954 [inline] __kmalloc_node+0x47/0xc0 mm/slab_common.c:962 kmalloc_array_node include/linux/slab.h:689 [inline] kcalloc_node include/linux/slab.h:694 [inline] memcg_alloc_slab_cgroups+0x8b/0x140 mm/memcontrol.c:2885 account_slab mm/slab.h:635 [inline] allocate_slab+0x270/0x300 mm/slub.c:1957 new_slab mm/slub.c:1992 [inline] ___slab_alloc+0xa91/0x1400 mm/slub.c:3180 __slab_alloc.constprop.0+0x56/0xa0 mm/slub.c:3279 slab_alloc_node mm/slub.c:3364 [inline] slab_alloc mm/slub.c:3406 [inline] __kmem_cache_alloc_lru mm/slub.c:3413 [inline] kmem_cache_alloc_lru+0x4ad/0x730 mm/slub.c:3429 alloc_inode_sb include/linux/fs.h:3117 [inline] hugetlbfs_alloc_inode+0x88/0x1e0 fs/hugetlbfs/inode.c:1241 alloc_inode+0x61/0x230 fs/inode.c:259 new_inode_pseudo fs/inode.c:1018 [inline] new_inode+0x27/0x270 fs/inode.c:1046 hugetlbfs_get_inode+0x353/0x5f0 fs/hugetlbfs/inode.c:972 page last free stack trace: reset_page_owner include/linux/page_owner.h:24 [inline] free_pages_prepare mm/page_alloc.c:1458 [inline] free_pcp_prepare+0x65c/0xd90 mm/page_alloc.c:1508 free_unref_page_prepare mm/page_alloc.c:3386 [inline] free_unref_page+0x19/0x4d0 mm/page_alloc.c:3482 __vunmap+0x85d/0xd30 mm/vmalloc.c:2713 free_work+0x58/0x70 mm/vmalloc.c:97 process_one_work+0x9bf/0x1710 kernel/workqueue.c:2289 worker_thread+0x665/0x1080 kernel/workqueue.c:2436 kthread+0x2e4/0x3a0 kernel/kthread.c:376 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:306 Memory state around the buggy address: ffff88804c749500: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff88804c749580: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc >ffff88804c749600: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ^ ffff88804c749680: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc ffff88804c749700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ================================================================== ---------------- Code disassembly (best guess): 0: 03 74 c0 01 add 0x1(%rax,%rax,8),%esi 4: 10 05 03 74 b8 01 adc %al,0x1b87403(%rip) # 0x1b8740d a: 10 06 adc %al,(%rsi) c: 03 74 b4 01 add 0x1(%rsp,%rsi,4),%esi 10: 10 07 adc %al,(%rdi) 12: 03 74 b0 01 add 0x1(%rax,%rsi,4),%esi 16: 10 08 adc %cl,(%rax) 18: 03 74 d8 01 add 0x1(%rax,%rbx,8),%esi 1c: 00 00 add %al,(%rax) 1e: 00 00 add %al,(%rax) 20: 00 51 52 add %dl,0x52(%rcx) 23: 55 push %rbp 24: 89 e5 mov %esp,%ebp 26: 0f 34 sysenter 28: cd 80 int $0x80 * 2a: 5d pop %rbp <-- trapping instruction 2b: 5a pop %rdx 2c: 59 pop %rcx 2d: c3 retq 2e: 90 nop 2f: 90 nop 30: 90 nop 31: 90 nop 32: 8d b4 26 00 00 00 00 lea 0x0(%rsi,%riz,1),%esi 39: 8d b4 26 00 00 00 00 lea 0x0(%rsi,%riz,1),%esi