Chao Yu 7cfe2d43be f2fs: fix to do sanity check for inline inode
commit 677a82b44ebf263d4f9a0cfbd576a6ade797a07b upstream.

Yanming reported a kernel bug in Bugzilla kernel [1], which can be
reproduced. The bug message is:

The kernel message is shown below:

kernel BUG at fs/inode.c:611!
Call Trace:
 evict+0x282/0x4e0
 __dentry_kill+0x2b2/0x4d0
 dput+0x2dd/0x720
 do_renameat2+0x596/0x970
 __x64_sys_rename+0x78/0x90
 do_syscall_64+0x3b/0x90

[1] https://bugzilla.kernel.org/show_bug.cgi?id=215895

The bug is due to fuzzed inode has both inline_data and encrypted flags.
During f2fs_evict_inode(), as the inode was deleted by rename(), it
will cause inline data conversion due to conflicting flags. The page
cache will be polluted and the panic will be triggered in clear_inode().

Try fixing the bug by doing more sanity checks for inline data inode in
sanity_check_inode().

Cc: stable@vger.kernel.org
Reported-by: Ming Yan <yanming@tju.edu.cn>
Signed-off-by: Chao Yu <chao.yu@oppo.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-06-09 10:23:18 +02:00
..
2022-02-08 18:34:04 +01:00
2021-08-19 09:02:55 +09:00
2022-06-09 10:22:43 +02:00
2021-08-26 22:28:02 +02:00
2022-06-09 10:22:55 +02:00
2021-12-29 12:28:59 +01:00
2021-09-03 15:33:47 -07:00
2021-08-16 10:50:32 -06:00
2022-05-15 20:18:52 +02:00
2021-08-19 09:02:55 +09:00
2021-11-25 09:48:46 +01:00
2022-06-09 10:23:09 +02:00
2021-09-09 13:25:49 -07:00
2021-11-25 09:49:08 +01:00
2021-08-18 22:08:24 +02:00
2021-12-14 10:57:15 +01:00
2021-08-10 17:57:22 +02:00