erofs: (device loop7): z_erofs_readahead: readahead error at folio 6 @ nid 89 syz.7.7983: attempt to access beyond end of device loop7: rw=524288, sector=16, nr_sectors = 40 limit=16 ================================================================== BUG: KASAN: slab-out-of-bounds in memcpy_to_page include/linux/highmem.h:427 [inline] BUG: KASAN: slab-out-of-bounds in z_erofs_transform_plain+0x3ab/0x4a0 fs/erofs/decompressor.c:347 Read of size 4096 at addr ffff88805f58c000 by task syz.7.7983/29155 CPU: 0 PID: 29155 Comm: syz.7.7983 Not tainted syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/24/2026 Call Trace: dump_stack_lvl+0x18c/0x250 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:364 [inline] print_report+0xa8/0x210 mm/kasan/report.c:468 kasan_report+0x117/0x150 mm/kasan/report.c:581 check_region_inline mm/kasan/generic.c:-1 [inline] kasan_check_range+0x241/0x290 mm/kasan/generic.c:187 __asan_memcpy+0x29/0x70 mm/kasan/shadow.c:105 memcpy_to_page include/linux/highmem.h:427 [inline] z_erofs_transform_plain+0x3ab/0x4a0 fs/erofs/decompressor.c:347 z_erofs_decompress_pcluster fs/erofs/zdata.c:1296 [inline] z_erofs_decompress_queue+0x1705/0x2670 fs/erofs/zdata.c:1377 z_erofs_runqueue+0x1993/0x1b20 fs/erofs/zdata.c:1778 z_erofs_read_folio+0x321/0x5c0 fs/erofs/zdata.c:1863 filemap_read_folio+0x16b/0x790 mm/filemap.c:2420 filemap_update_page mm/filemap.c:2504 [inline] filemap_get_pages+0x13ac/0x1f10 mm/filemap.c:2618 filemap_read+0x409/0xf20 mm/filemap.c:2690 __kernel_read+0x2e5/0x730 fs/read_write.c:428 integrity_kernel_read+0x8a/0xd0 security/integrity/iint.c:221 ima_calc_file_hash_tfm security/integrity/ima/ima_crypto.c:485 [inline] ima_calc_file_shash security/integrity/ima/ima_crypto.c:516 [inline] ima_calc_file_hash+0xb1f/0x1960 security/integrity/ima/ima_crypto.c:573 ima_collect_measurement+0x4d4/0xa30 security/integrity/ima/ima_api.c:290 process_measurement+0x123a/0x1d50 security/integrity/ima/ima_main.c:370 ima_file_check+0xcc/0x110 security/integrity/ima/ima_main.c:568 do_open fs/namei.c:3685 [inline] path_openat+0x2910/0x3270 fs/namei.c:3844 do_filp_open+0x1f2/0x430 fs/namei.c:3871 do_sys_openat2+0x134/0x1d0 fs/open.c:1422 do_sys_open fs/open.c:1437 [inline] __do_sys_openat fs/open.c:1453 [inline] __se_sys_openat fs/open.c:1448 [inline] __x64_sys_openat+0x139/0x160 fs/open.c:1448 do_syscall_x64 arch/x86/entry/common.c:46 [inline] do_syscall_64+0x55/0xb0 arch/x86/entry/common.c:76 entry_SYSCALL_64_after_hwframe+0x68/0xd2 RIP: 0033:0x7f7825d9e019 Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 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 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f7826ce4028 EFLAGS: 00000246 ORIG_RAX: 0000000000000101 RAX: ffffffffffffffda RBX: 00007f7826025fa0 RCX: 00007f7825d9e019 RDX: 0000000000080000 RSI: 0000200000000100 RDI: ffffffffffffff9c RBP: 00007f7825e3500c R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007f7826026038 R14: 00007f7826025fa0 R15: 00007fff277fb628 Allocated by task 5774: kasan_save_stack mm/kasan/common.c:46 [inline] kasan_set_track+0x4e/0x70 mm/kasan/common.c:53 __kasan_slab_alloc+0x6c/0x80 mm/kasan/common.c:329 kasan_slab_alloc include/linux/kasan.h:188 [inline] slab_post_alloc_hook+0x6a/0x4d0 mm/slab.h:770 slab_alloc_node mm/slub.c:3495 [inline] slab_alloc mm/slub.c:3503 [inline] __kmem_cache_alloc_lru mm/slub.c:3510 [inline] kmem_cache_alloc+0x17e/0x2c0 mm/slub.c:3519 kmem_cache_zalloc include/linux/slab.h:711 [inline] fill_pool lib/debugobjects.c:169 [inline] debug_objects_fill_pool+0x5c2/0x790 lib/debugobjects.c:654 debug_object_activate+0x36/0x500 lib/debugobjects.c:743 debug_hrtimer_activate kernel/time/hrtimer.c:450 [inline] debug_activate kernel/time/hrtimer.c:504 [inline] enqueue_hrtimer+0x34/0x380 kernel/time/hrtimer.c:1100 __run_hrtimer kernel/time/hrtimer.c:1771 [inline] __hrtimer_run_queues+0x62f/0xc10 kernel/time/hrtimer.c:1818 hrtimer_interrupt+0x39d/0x980 kernel/time/hrtimer.c:1880 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1077 [inline] __sysvec_apic_timer_interrupt+0xfb/0x3b0 arch/x86/kernel/apic/apic.c:1094 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1088 [inline] sysvec_apic_timer_interrupt+0x9f/0xc0 arch/x86/kernel/apic/apic.c:1088 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:687 The buggy address belongs to the object at ffff88805f58c000 which belongs to the cache debug_objects_cache of size 40 The buggy address is located 0 bytes inside of allocated 40-byte region [ffff88805f58c000, ffff88805f58c028) The buggy address belongs to the physical page: page:ffffea00017d6300 refcount:1 mapcount:0 mapping:0000000000000000 index:0xffff88805f58c8c0 pfn:0x5f58c flags: 0xfff00000000800(slab|node=0|zone=1|lastcpupid=0x7ff) page_type: 0xffffffff() raw: 00fff00000000800 ffff888017c4f8c0 ffffea000149fad0 ffffea0001817890 raw: ffff88805f58c8c0 0000000000490030 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 0x12020(__GFP_HIGH|__GFP_NOWARN|__GFP_NORETRY), pid 5774, tgid 5774 (syz-executor), ts 85212003302, free_ts 28440548444 set_page_owner include/linux/page_owner.h:31 [inline] post_alloc_hook+0x1c1/0x200 mm/page_alloc.c:1582 prep_new_page mm/page_alloc.c:1589 [inline] get_page_from_freelist+0x2181/0x22a0 mm/page_alloc.c:3221 __alloc_pages+0x1f0/0x460 mm/page_alloc.c:4501 alloc_slab_page+0x5d/0x180 mm/slub.c:1881 allocate_slab mm/slub.c:2028 [inline] new_slab+0x87/0x2d0 mm/slub.c:2081 ___slab_alloc+0xc5c/0x12f0 mm/slub.c:3253 __slab_alloc mm/slub.c:3339 [inline] __slab_alloc_node mm/slub.c:3392 [inline] slab_alloc_node mm/slub.c:3485 [inline] slab_alloc mm/slub.c:3503 [inline] __kmem_cache_alloc_lru mm/slub.c:3510 [inline] kmem_cache_alloc+0x109/0x2c0 mm/slub.c:3519 kmem_cache_zalloc include/linux/slab.h:711 [inline] fill_pool lib/debugobjects.c:169 [inline] debug_objects_fill_pool+0x5c2/0x790 lib/debugobjects.c:654 debug_object_activate+0x36/0x500 lib/debugobjects.c:743 debug_hrtimer_activate kernel/time/hrtimer.c:450 [inline] debug_activate kernel/time/hrtimer.c:504 [inline] enqueue_hrtimer+0x34/0x380 kernel/time/hrtimer.c:1100 __run_hrtimer kernel/time/hrtimer.c:1771 [inline] __hrtimer_run_queues+0x62f/0xc10 kernel/time/hrtimer.c:1818 hrtimer_interrupt+0x39d/0x980 kernel/time/hrtimer.c:1880 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1077 [inline] __sysvec_apic_timer_interrupt+0xfb/0x3b0 arch/x86/kernel/apic/apic.c:1094 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1088 [inline] sysvec_apic_timer_interrupt+0x9f/0xc0 arch/x86/kernel/apic/apic.c:1088 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:687 page last free stack trace: reset_page_owner include/linux/page_owner.h:24 [inline] free_pages_prepare mm/page_alloc.c:1182 [inline] free_unref_page_prepare+0x7d7/0x8f0 mm/page_alloc.c:2366 free_unref_page+0x32/0x2e0 mm/page_alloc.c:2459 free_contig_range+0xa1/0x150 mm/page_alloc.c:6421 destroy_args+0x7d/0x840 mm/debug_vm_pgtable.c:1015 debug_vm_pgtable+0x411/0x440 mm/debug_vm_pgtable.c:1400 do_one_initcall+0x242/0x790 init/main.c:1210 do_initcall_level+0x13d/0x1f0 init/main.c:1272 do_initcalls+0x69/0xd0 init/main.c:1288 kernel_init_freeable+0x3d9/0x560 init/main.c:1525 kernel_init+0x1d/0x1c0 init/main.c:1415 ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:152 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:293 Memory state around the buggy address: ffff88805f58bf00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff88805f58bf80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >ffff88805f58c000: 00 00 00 00 00 fc fc 00 00 00 00 00 fc fc fb fb ^ ffff88805f58c080: fb fb fb fc fc 00 00 00 00 00 fc fc fb fb fb fb ffff88805f58c100: fb fc fc fb fb fb fb fb fc fc 00 00 00 00 00 fc ==================================================================