A syzbot fuzzed image triggered a BUG_ON in ext4_update_inline_data() when an inode had the INLINE_DATA_FL flag set but was missing the system.data extended attribute. Since this can happen due to a maiciouly fuzzed file system, we shouldn't BUG, but rather, report it as a corrupted file system. Reported-by: syzbot+544248a761451c0df72f@xxxxxxxxxxxxxxxxxxxxxxxxx Signed-off-by: Theodore Ts'o <tytso@xxxxxxx> --- fs/ext4/inline.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index d5b32d242495..424c40c768de 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c @@ -354,6 +354,12 @@ static int ext4_update_inline_data(handle_t *handle, struct inode *inode, if (error) goto out; + if (is.s.not_found) { + EXT4_ERROR_INODE(inode, "missing inline data xattr"); + error = -EFSCORRUPTED; + goto out; + } + BUG_ON(is.s.not_found); len -= EXT4_MIN_INLINE_DATA_SIZE; -- 2.47.2