Quota error (device loop3): do_check_range: Getting dqdh_entries 15 out of range 0-14 EXT4-fs error (device loop3): ext4_release_dquot:6811: comm kworker/u4:1: Failed to release dquot type 1 ================================================================== BUG: KASAN: use-after-free in hlist_add_head include/linux/list.h:930 [inline] BUG: KASAN: use-after-free in enqueue_timer+0xa6/0x480 kernel/time/timer.c:611 Write of size 8 at addr ffff8881192da4c0 by task kworker/u4:1/10 CPU: 1 PID: 10 Comm: kworker/u4:1 Not tainted 6.1.118-syzkaller-00078-ge2b9748880b9 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Workqueue: events_unbound quota_release_workfn Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x151/0x1b7 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:316 [inline] print_report+0x158/0x4e0 mm/kasan/report.c:427 kasan_report+0x13c/0x170 mm/kasan/report.c:531 __asan_report_store8_noabort+0x17/0x20 mm/kasan/report_generic.c:356 hlist_add_head include/linux/list.h:930 [inline] enqueue_timer+0xa6/0x480 kernel/time/timer.c:611 internal_add_timer kernel/time/timer.c:640 [inline] __mod_timer+0x8d3/0xcf0 kernel/time/timer.c:1121 mod_timer+0x1f/0x30 kernel/time/timer.c:1172 ext4_update_super+0xa41/0xe50 fs/ext4/super.c:6067 ext4_commit_super+0xe3/0x4b0 fs/ext4/super.c:6086 ext4_handle_error+0x5d8/0x870 fs/ext4/super.c:678 __ext4_error+0x260/0x480 fs/ext4/super.c:779 ext4_release_dquot+0x31f/0x440 fs/ext4/super.c:6809 quota_release_workfn+0x38e/0x630 fs/quota/dquot.c:846 process_one_work+0x73d/0xcb0 kernel/workqueue.c:2299 worker_thread+0xa60/0x1260 kernel/workqueue.c:2446 kthread+0x26d/0x300 kernel/kthread.c:386 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295 Allocated by task 1186: kasan_save_stack mm/kasan/common.c:45 [inline] kasan_set_track+0x4b/0x70 mm/kasan/common.c:52 kasan_save_alloc_info+0x1f/0x30 mm/kasan/generic.c:505 ____kasan_kmalloc mm/kasan/common.c:379 [inline] __kasan_kmalloc+0x9c/0xb0 mm/kasan/common.c:388 kasan_kmalloc include/linux/kasan.h:212 [inline] kmalloc_trace+0x44/0xa0 mm/slab_common.c:1033 kmalloc include/linux/slab.h:557 [inline] kzalloc include/linux/slab.h:693 [inline] ext4_alloc_sbi fs/ext4/super.c:4265 [inline] ext4_fill_super+0x102/0x8460 fs/ext4/super.c:5639 get_tree_bdev+0x440/0x680 fs/super.c:1368 ext4_get_tree+0x1c/0x20 fs/ext4/super.c:5682 vfs_get_tree+0x88/0x290 fs/super.c:1575 do_new_mount+0x2ba/0xb30 fs/namespace.c:3056 path_mount+0x671/0x1070 fs/namespace.c:3386 do_mount fs/namespace.c:3399 [inline] __do_sys_mount fs/namespace.c:3607 [inline] __se_sys_mount+0x2c4/0x3b0 fs/namespace.c:3584 __x64_sys_mount+0xbf/0xd0 fs/namespace.c:3584 x64_sys_call+0x49d/0x9a0 arch/x86/include/generated/asm/syscalls_64.h:166 do_syscall_x64 arch/x86/entry/common.c:51 [inline] do_syscall_64+0x3b/0xb0 arch/x86/entry/common.c:81 entry_SYSCALL_64_after_hwframe+0x68/0xd2 Freed by task 293: kasan_save_stack mm/kasan/common.c:45 [inline] kasan_set_track+0x4b/0x70 mm/kasan/common.c:52 kasan_save_free_info+0x2b/0x40 mm/kasan/generic.c:516 ____kasan_slab_free+0x131/0x180 mm/kasan/common.c:241 __kasan_slab_free+0x11/0x20 mm/kasan/common.c:249 kasan_slab_free include/linux/kasan.h:178 [inline] slab_free_hook mm/slub.c:1745 [inline] slab_free_freelist_hook mm/slub.c:1771 [inline] slab_free mm/slub.c:3686 [inline] __kmem_cache_free+0x21d/0x410 mm/slub.c:3702 kfree+0x7a/0xf0 mm/slab_common.c:990 ext4_put_super+0x9e5/0xd60 fs/ext4/super.c:1313 generic_shutdown_super+0x14f/0x370 fs/super.c:503 kill_block_super+0x7e/0xe0 fs/super.c:1472 deactivate_locked_super+0xad/0x110 fs/super.c:334 deactivate_super+0xbe/0xf0 fs/super.c:365 cleanup_mnt+0x485/0x510 fs/namespace.c:1186 __cleanup_mnt+0x19/0x20 fs/namespace.c:1193 task_work_run+0x24d/0x2e0 kernel/task_work.c:203 exit_task_work include/linux/task_work.h:39 [inline] do_exit+0xbd5/0x2b80 kernel/exit.c:877 do_group_exit+0x21a/0x2d0 kernel/exit.c:1027 __do_sys_exit_group kernel/exit.c:1038 [inline] __se_sys_exit_group kernel/exit.c:1036 [inline] __x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1036 x64_sys_call+0x610/0x9a0 arch/x86/include/generated/asm/syscalls_64.h:232 do_syscall_x64 arch/x86/entry/common.c:51 [inline] do_syscall_64+0x3b/0xb0 arch/x86/entry/common.c:81 entry_SYSCALL_64_after_hwframe+0x68/0xd2 The buggy address belongs to the object at ffff8881192da000 which belongs to the cache kmalloc-4k of size 4096 The buggy address is located 1216 bytes inside of 4096-byte region [ffff8881192da000, ffff8881192db000) The buggy address belongs to the physical page: page:ffffea000464b600 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x1192d8 head:ffffea000464b600 order:3 compound_mapcount:0 compound_pincount:0 flags: 0x4000000000010200(slab|head|zone=1) raw: 4000000000010200 dead000000000100 dead000000000122 ffff888100043380 raw: 0000000000000000 0000000000040004 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected page_owner tracks the page as allocated page last allocated via order 3, migratetype Unmovable, gfp_mask 0x1d20c0(__GFP_IO|__GFP_FS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOMEMALLOC|__GFP_HARDWALL), pid 296, tgid 296 (syz-executor), ts 56942156657, free_ts 56907096683 set_page_owner include/linux/page_owner.h:33 [inline] post_alloc_hook+0x213/0x220 mm/page_alloc.c:2590 prep_new_page+0x1b/0x110 mm/page_alloc.c:2597 get_page_from_freelist+0x2f41/0x2fc0 mm/page_alloc.c:4462 __alloc_pages+0x234/0x610 mm/page_alloc.c:5759 alloc_slab_page+0x6c/0xf0 allocate_slab mm/slub.c:1962 [inline] new_slab+0x90/0x3e0 mm/slub.c:2015 ___slab_alloc+0x6f9/0xb80 mm/slub.c:3203 __slab_alloc+0x5d/0xa0 mm/slub.c:3302 slab_alloc_node mm/slub.c:3387 [inline] __kmem_cache_alloc_node+0x207/0x2a0 mm/slub.c:3462 kmalloc_trace+0x2a/0xa0 mm/slab_common.c:1028 kmalloc include/linux/slab.h:557 [inline] kzalloc include/linux/slab.h:693 [inline] kobject_uevent_env+0x262/0x720 lib/kobject_uevent.c:539 disk_event_uevent block/disk-events.c:181 [inline] disk_force_media_change+0x1b3/0x2c0 block/disk-events.c:305 __loop_clr_fd+0x3a5/0x670 drivers/block/loop.c:1169 lo_release+0x14b/0x1d0 drivers/block/loop.c:1740 blkdev_put+0x5ff/0x790 kill_block_super+0xb3/0xe0 fs/super.c:1475 page last free stack trace: reset_page_owner include/linux/page_owner.h:26 [inline] free_pages_prepare mm/page_alloc.c:1498 [inline] free_pcp_prepare mm/page_alloc.c:1572 [inline] free_unref_page_prepare+0x83d/0x850 mm/page_alloc.c:3511 free_unref_page+0xb2/0x5c0 mm/page_alloc.c:3607 free_the_page mm/page_alloc.c:798 [inline] free_compound_page+0x9d/0xd0 mm/page_alloc.c:821 destroy_large_folio+0x56/0x90 mm/page_alloc.c:858 __folio_put_large mm/swap.c:118 [inline] __folio_put+0xcf/0xe0 mm/swap.c:126 folio_put include/linux/mm.h:1431 [inline] put_page include/linux/mm.h:1483 [inline] __skb_frag_unref include/linux/skbuff.h:3455 [inline] skb_release_data+0x3c1/0x840 net/core/skbuff.c:785 skb_release_all net/core/skbuff.c:856 [inline] __kfree_skb+0x50/0x70 net/core/skbuff.c:870 tcp_wmem_free_skb include/net/tcp.h:305 [inline] tcp_rtx_queue_unlink_and_free+0x3d5/0x610 include/net/tcp.h:1960 tcp_clean_rtx_queue net/ipv4/tcp_input.c:3400 [inline] tcp_ack+0x2437/0x6a30 net/ipv4/tcp_input.c:3959 tcp_rcv_established+0xe31/0x1c60 net/ipv4/tcp_input.c:6006 tcp_v4_do_rcv+0x430/0xa20 net/ipv4/tcp_ipv4.c:1683 sk_backlog_rcv include/net/sock.h:1131 [inline] __release_sock+0x145/0x410 net/core/sock.c:2942 release_sock+0x65/0x1b0 net/core/sock.c:3516 tcp_sendmsg+0x3a/0x50 net/ipv4/tcp.c:1489 inet_sendmsg+0xa1/0xc0 net/ipv4/af_inet.c:837 sock_sendmsg_nosec net/socket.c:716 [inline] __sock_sendmsg net/socket.c:728 [inline] sock_write_iter+0x394/0x4e0 net/socket.c:1133 Memory state around the buggy address: ffff8881192da380: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff8881192da400: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff8881192da480: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ^ ffff8881192da500: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff8881192da580: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ==================================================================