#syz test --- fs/ntfs3/index.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/fs/ntfs3/index.c b/fs/ntfs3/index.c index 1bf2a6593dec..15f3a711ea0a 100644 --- a/fs/ntfs3/index.c +++ b/fs/ntfs3/index.c @@ -478,6 +478,7 @@ static int indx_find_free(struct ntfs_index *indx, struct ntfs_inode *ni, struct ATTR_LIST_ENTRY *le = NULL; const struct INDEX_NAMES *in = &s_index_names[indx->type]; int err; + u64 bm_size; b = ni_find_attr(ni, NULL, &le, ATTR_BITMAP, in->name, in->name_len, NULL, NULL); @@ -488,6 +489,17 @@ static int indx_find_free(struct ntfs_index *indx, struct ntfs_inode *ni, *bitmap = b; *bit = MINUS_ONE_T; + bm_size = b->non_res ? le64_to_cpu(b->nres.valid_size) : + le32_to_cpu(b->res.data_size); + + /* + * Allocated index blocks require $BITMAP to contain at least + * one bit for usage tracking. A zero-length bitmap in this + * case indicates a malformed on-disk structure and cannot be used. + */ + if (unlikely(bm_size == 0 && indx->alloc_run.count)) + return -EINVAL; + if (!b->non_res) { u32 nbits = 8 * le32_to_cpu(b->res.data_size); size_t pos = find_next_zero_bit_le(resident_data(b), nbits, 0); -- On Tue, Jul 8, 2025 at 1:13 AM syzbot <syzbot+b0373017f711c06ada64@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote: > > Hello, > > syzbot has tested the proposed patch but the reproducer is still triggering an issue: > WARNING in ni_rename > > loop0: detected capacity change from 0 to 4096 > ------------[ cut here ]------------ > WARNING: fs/ntfs3/frecord.c:3030 at ni_rename+0xee/0x100 fs/ntfs3/frecord.c:3029, CPU#1: syz.0.16/6620 > Modules linked in: > CPU: 1 UID: 0 PID: 6620 Comm: syz.0.16 Not tainted 6.16.0-rc4-next-20250704-syzkaller-07381-g26ffb3d6f02c-dirty #0 PREEMPT(full) > Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025 > RIP: 0010:ni_rename+0xee/0x100 fs/ntfs3/frecord.c:3029 > Code: 8b 05 b6 5d 9a 0f 48 3b 44 24 10 75 22 44 89 e0 48 83 c4 18 5b 41 5c 41 5d 41 5e 41 5f 5d e9 d9 a6 6c 08 cc e8 f3 7d b9 fe 90 <0f> 0b 90 eb c5 e8 68 cc 69 08 0f 1f 84 00 00 00 00 00 90 90 90 90 > RSP: 0018:ffffc900033e7ab8 EFLAGS: 00010293 > RAX: ffffffff8306228d RBX: 00000000fffffffe RCX: ffff888021723c00 > RDX: 0000000000000000 RSI: 00000000fffffffe RDI: 0000000000000000 > RBP: 00000000fffffffe R08: ffffffff8fa18a37 R09: 1ffffffff1f43146 > R10: dffffc0000000000 R11: fffffbfff1f43147 R12: 0000000000000000 > R13: ffff88802f30d500 R14: ffff88806d04d0c8 R15: ffff88806d04b368 > FS: 00007f1edd33f6c0(0000) GS:ffff888125d18000(0000) knlGS:0000000000000000 > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > CR2: 0000200000001060 CR3: 000000007c546000 CR4: 00000000003526f0 > Call Trace: > <TASK> > ntfs_rename+0x6e2/0xb40 fs/ntfs3/namei.c:316 > vfs_rename+0xbd7/0xf00 fs/namei.c:5129 > do_renameat2+0x6ce/0xa80 fs/namei.c:5278 > __do_sys_rename fs/namei.c:5325 [inline] > __se_sys_rename fs/namei.c:5323 [inline] > __x64_sys_rename+0x82/0x90 fs/namei.c:5323 > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94 > entry_SYSCALL_64_after_hwframe+0x77/0x7f > RIP: 0033:0x7f1edc58e929 > Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 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 a8 ff ff ff f7 d8 64 89 01 48 > RSP: 002b:00007f1edd33f038 EFLAGS: 00000246 ORIG_RAX: 0000000000000052 > RAX: ffffffffffffffda RBX: 00007f1edc7b5fa0 RCX: 00007f1edc58e929 > RDX: 0000000000000000 RSI: 0000200000001040 RDI: 0000200000000280 > RBP: 00007f1edc610b39 R08: 0000000000000000 R09: 0000000000000000 > R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 > R13: 0000000000000000 R14: 00007f1edc7b5fa0 R15: 00007ffcb3616c48 > </TASK> > > > Tested on: > > commit: 26ffb3d6 Add linux-next specific files for 20250704 > git tree: linux-next > console output: https://syzkaller.appspot.com/x/log.txt?x=16c95582580000 > kernel config: https://syzkaller.appspot.com/x/.config?x=59817f9ef599726c > dashboard link: https://syzkaller.appspot.com/bug?extid=b0373017f711c06ada64 > compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 > patch: https://syzkaller.appspot.com/x/patch.diff?x=175edf70580000 > > -- > You received this message because you are subscribed to the Google Groups "syzkaller-bugs" group. > To unsubscribe from this group and stop receiving emails from it, send an email to syzkaller-bugs+unsubscribe@xxxxxxxxxxxxxxxx. > To view this discussion visit https://groups.google.com/d/msgid/syzkaller-bugs/686cd312.a00a0220.338033.0009.GAE%40google.com.