syzbot


KMSAN: uninit-value in __try_merge_extent_node

Status: upstream: reported on 2025/06/18 21:22
Subsystems: f2fs
[Documentation on labels]
Reported-by: syzbot+b8c1d60e95df65e827d4@syzkaller.appspotmail.com
Fix commit: 154467f4ad03 f2fs: fix KMSAN uninit-value in extent_info usage
Patched on: [ci-qemu-gce-upstream-auto ci-qemu-upstream ci-qemu-upstream-386 ci-qemu2-arm32 ci-qemu2-arm64 ci-qemu2-arm64-compat ci-qemu2-arm64-mte ci-qemu2-riscv64 ci-snapshot-upstream-root ci-upstream-bpf-kasan-gce ci-upstream-bpf-next-kasan-gce ci-upstream-gce-arm64 ci-upstream-gce-leak ci-upstream-kasan-badwrites-root ci-upstream-kasan-gce ci-upstream-kasan-gce-386 ci-upstream-kasan-gce-root ci-upstream-kasan-gce-selinux-root ci-upstream-kmsan-gce-386-root ci-upstream-kmsan-gce-root ci-upstream-linux-next-kasan-gce-root ci-upstream-net-kasan-gce ci-upstream-net-this-kasan-gce ci-upstream-rust-kasan-gce ci2-upstream-fs ci2-upstream-kcsan-gce ci2-upstream-usb], missing on: [ci-qemu-native-arm64-kvm ci-upstream-kasan-gce-smack-root]
First crash: 67d, last: 26d
Discussions (3)
Title Replies (including bot) Last reply
[PATCH v2] f2fs: fix KMSAN uninit-value in extent_info usage 6 (6) 2025/07/09 18:10
[PATCH] f2fs: fix KMSAN uninit-value in extent_info usage 1 (1) 2025/06/19 11:14
[syzbot] [f2fs?] KMSAN: uninit-value in __try_merge_extent_node 0 (1) 2025/06/18 21:22

Sample crash report:
=====================================================
BUG: KMSAN: uninit-value in __is_extent_mergeable fs/f2fs/extent_cache.c:154 [inline]
BUG: KMSAN: uninit-value in __is_back_mergeable fs/f2fs/extent_cache.c:173 [inline]
BUG: KMSAN: uninit-value in __try_merge_extent_node+0x415/0x1600 fs/f2fs/extent_cache.c:546
 __is_extent_mergeable fs/f2fs/extent_cache.c:154 [inline]
 __is_back_mergeable fs/f2fs/extent_cache.c:173 [inline]
 __try_merge_extent_node+0x415/0x1600 fs/f2fs/extent_cache.c:546
 __update_extent_tree_range+0x1b53/0x2ae0 fs/f2fs/extent_cache.c:776
 __update_extent_cache+0x11cc/0x1420 fs/f2fs/extent_cache.c:950
 f2fs_update_read_extent_cache+0x20/0x30 fs/f2fs/extent_cache.c:1055
 f2fs_update_data_blkaddr+0x428/0x470 fs/f2fs/data.c:1142
 f2fs_outplace_write_data+0x1bf/0x250 fs/f2fs/segment.c:4011
 f2fs_do_write_data_page+0x2a11/0x3480 fs/f2fs/data.c:2752
 f2fs_write_single_data_page+0x15bf/0x29b0 fs/f2fs/data.c:2868
 f2fs_write_cache_pages fs/f2fs/data.c:3133 [inline]
 __f2fs_write_data_pages fs/f2fs/data.c:3282 [inline]
 f2fs_write_data_pages+0x2f66/0x5480 fs/f2fs/data.c:3309
 do_writepages+0x3ef/0x860 mm/page-writeback.c:2636
 filemap_fdatawrite_wbc mm/filemap.c:386 [inline]
 __filemap_fdatawrite_range mm/filemap.c:419 [inline]
 file_write_and_wait_range+0x6f0/0x7d0 mm/filemap.c:794
 f2fs_do_sync_file+0x79b/0x31c0 fs/f2fs/file.c:294
 f2fs_sync_file+0x107/0x180 fs/f2fs/file.c:411
 vfs_fsync_range+0x19e/0x240 fs/sync.c:187
 generic_write_sync include/linux/fs.h:3031 [inline]
 f2fs_file_write_iter+0xddf/0x4990 fs/f2fs/file.c:5241
 new_sync_write fs/read_write.c:593 [inline]
 vfs_write+0xb48/0x1580 fs/read_write.c:686
 ksys_write fs/read_write.c:738 [inline]
 __do_sys_write fs/read_write.c:749 [inline]
 __se_sys_write fs/read_write.c:746 [inline]
 __x64_sys_write+0x1fb/0x4d0 fs/read_write.c:746
 x64_sys_call+0x38c3/0x3db0 arch/x86/include/generated/asm/syscalls_64.h:2
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xd9/0x210 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

Uninit was stored to memory at:
 __attach_extent_node+0x27c/0x630 fs/f2fs/extent_cache.c:302
 f2fs_init_read_extent_tree+0x48b/0xf10 fs/f2fs/extent_cache.c:443
 do_read_inode fs/f2fs/inode.c:541 [inline]
 f2fs_iget+0x7a0e/0x8950 fs/f2fs/inode.c:589
 f2fs_lookup+0x5c3/0x13c0 fs/f2fs/namei.c:499
 lookup_open fs/namei.c:3695 [inline]
 open_last_lookups fs/namei.c:3816 [inline]
 path_openat+0x298a/0x6760 fs/namei.c:4052
 do_filp_open+0x280/0x660 fs/namei.c:4082
 do_sys_openat2+0x1bb/0x2f0 fs/open.c:1437
 do_sys_open fs/open.c:1452 [inline]
 __do_sys_openat fs/open.c:1468 [inline]
 __se_sys_openat fs/open.c:1463 [inline]
 __x64_sys_openat+0x240/0x300 fs/open.c:1463
 x64_sys_call+0x213/0x3db0 arch/x86/include/generated/asm/syscalls_64.h:258
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xd9/0x210 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

Local variable ei created at:
 f2fs_init_read_extent_tree+0xe7/0xf10 fs/f2fs/extent_cache.c:417
 do_read_inode fs/f2fs/inode.c:541 [inline]
 f2fs_iget+0x7a0e/0x8950 fs/f2fs/inode.c:589

CPU: 1 UID: 0 PID: 21300 Comm: syz.8.4160 Tainted: G        W           6.16.0-rc7-syzkaller-00114-g327579671a9b #0 PREEMPT(none) 
Tainted: [W]=WARN
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025
=====================================================

Crashes (3):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/07/26 00:48 upstream 327579671a9b fb8f743d .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kmsan-gce-root KMSAN: uninit-value in __try_merge_extent_node
2025/07/01 23:30 upstream 66701750d556 ffe4b334 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kmsan-gce-root KMSAN: uninit-value in __try_merge_extent_node
2025/06/14 21:11 upstream 4774cfe3543a 5f4b362d .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kmsan-gce-root KMSAN: uninit-value in __try_merge_extent_node
* Struck through repros no longer work on HEAD.