On Mon, Dec 25, 2023 at 10:33:20AM +0800, Baokun Li wrote:Yes, this seems to work, but for that matter, when i_mode is 0, we
Since in the current logic we update the boot loader file viaYes, but the boot laoder inode is *either* all zeros, or a regular
swap_inode_boot_loader(), however the boot loader inode on disk
may be uninitialized and may be garbage data, so we allow to get a
bad boot loader inode and then initialize it and swap it with the boot
loader file to be set.
When reinitializing the bad boot loader inode, something like an
inode type conversion may occur.
file. If it's a directory, then it's a malicious syzbot trying to
mess with our minds.
Aside from the warning, it's pretty harmless, but it will very likely
result in a corrupted file system --- but the file system was
corrupted in the first place. So who cares?
Just check to make sure that i_mode is either 0, or regular file, and
return EFSCORRUPTEd, and we're done.
- Ted