mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-22 23:13:01 +02:00
[ Upstream commit 0dc7117da8f92dd5fe077d712a756eccbe377d40 ]
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:
|
||
|---|---|---|
| .. | ||
| lib | ||
| attrib.c | ||
| attrlist.c | ||
| bitfunc.c | ||
| bitmap.c | ||
| debug.h | ||
| dir.c | ||
| file.c | ||
| frecord.c | ||
| fslog.c | ||
| fsntfs.c | ||
| index.c | ||
| inode.c | ||
| Kconfig | ||
| lznt.c | ||
| Makefile | ||
| namei.c | ||
| ntfs_fs.h | ||
| ntfs.h | ||
| record.c | ||
| run.c | ||
| super.c | ||
| upcase.c | ||
| xattr.c | ||