fs/ntfs3: reject index allocation if $BITMAP is empty but blocks exist
[ Upstream commit 0dc7117d ] Index allocation requires at least one bit in the $BITMAP attribute to track usage of index entries. If the bitmap is empty while index blocks are already present, this reflects on-disk corruption. syzbot triggered this condition using a malformed NTFS image. During a rename() operation involving a long filename (which spans multiple index entries), the empty bitmap allowed the name to be added without valid tracking. Subsequent deletion of the original entry failed with -ENOENT, due to unexpected index state. Reject such cases by verifying that the bitmap is not empty when index blocks exist. Reported-by:<syzbot+b0373017f711c06ada64@syzkaller.appspotmail.com> Closes: https://syzkaller.appspot.com/bug?extid=b0373017f711c06ada64 Fixes: d99208b9 ("fs/ntfs3: cancle set bad inode after removing name fails") Tested-by:
<syzbot+b0373017f711c06ada64@syzkaller.appspotmail.com> Signed-off-by:
Moon Hee Lee <moonhee.lee.ca@gmail.com> Signed-off-by:
Konstantin Komarov <almaz.alexandrovich@paragon-software.com> Signed-off-by:
Sasha Levin <sashal@kernel.org>
Loading
Please sign in to comment