Chao Yu
9804eda4a9
f2fs: fix to check segment boundary during SIT page readahead
...
[ Upstream commit 6a257471fa
]
As syzbot reported:
kernel BUG at fs/f2fs/segment.h:657!
invalid opcode: 0000 [#1 ] PREEMPT SMP KASAN
CPU: 1 PID: 16220 Comm: syz-executor.0 Not tainted 5.9.0-rc5-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
RIP: 0010:f2fs_ra_meta_pages+0xa51/0xdc0 fs/f2fs/segment.h:657
Call Trace:
build_sit_entries fs/f2fs/segment.c:4195 [inline]
f2fs_build_segment_manager+0x4b8a/0xa3c0 fs/f2fs/segment.c:4779
f2fs_fill_super+0x377d/0x6b80 fs/f2fs/super.c:3633
mount_bdev+0x32e/0x3f0 fs/super.c:1417
legacy_get_tree+0x105/0x220 fs/fs_context.c:592
vfs_get_tree+0x89/0x2f0 fs/super.c:1547
do_new_mount fs/namespace.c:2875 [inline]
path_mount+0x1387/0x2070 fs/namespace.c:3192
do_mount fs/namespace.c:3205 [inline]
__do_sys_mount fs/namespace.c:3413 [inline]
__se_sys_mount fs/namespace.c:3390 [inline]
__x64_sys_mount+0x27f/0x300 fs/namespace.c:3390
do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
entry_SYSCALL_64_after_hwframe+0x44/0xa9
@blkno in f2fs_ra_meta_pages could exceed max segment count, causing panic
in following sanity check in current_sit_addr(), add check condition to
avoid this issue.
Reported-by: syzbot+3698081bcf0bb2d12174@syzkaller.appspotmail.com
Signed-off-by: Chao Yu <yuchao0@huawei.com >
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org >
Signed-off-by: Sasha Levin <sashal@kernel.org >
2020-11-05 11:43:13 +01:00
..
2020-08-19 08:16:24 +02:00
2019-07-19 11:33:22 -07:00
2020-09-09 19:12:34 +02:00
2020-09-09 19:12:23 +02:00
2019-10-25 00:03:11 -04:00
2019-08-30 07:27:17 -07:00
2019-08-30 07:27:17 -07:00
2020-10-17 10:11:21 +02:00
2020-06-03 08:21:11 +02:00
2020-10-01 13:18:08 +02:00
2020-10-29 09:57:28 +01:00
2019-09-19 09:42:37 -07:00
2020-05-27 17:46:30 +02:00
2019-11-23 21:44:49 -05:00
2020-03-18 07:17:53 +01:00
2020-09-17 13:47:55 +02:00
2019-09-03 09:30:56 -04:00
2020-10-29 09:58:03 +01:00
2020-02-28 17:22:26 +01:00
2020-11-01 12:01:02 +01:00
2019-08-30 07:27:17 -07:00
2020-11-01 12:01:04 +01:00
2019-11-10 11:56:05 -05:00
2020-09-09 19:12:30 +02:00
2020-10-29 09:57:55 +01:00
2020-11-05 11:43:13 +01:00
2020-06-17 16:40:36 +02:00
2019-08-30 07:27:17 -07:00
2019-07-10 18:43:43 -07:00
2020-11-01 12:01:05 +01:00
2020-10-01 13:17:20 +02:00
2019-05-21 10:50:46 +02:00
2020-04-17 10:50:22 +02:00
2019-05-12 17:52:13 -04:00
2019-08-30 08:11:25 -07:00
2020-09-03 11:26:48 +02:00
2020-10-29 09:58:06 +01:00
2019-09-19 09:42:37 -07:00
2020-09-03 11:26:56 +02:00
2020-08-26 10:40:56 +02:00
2019-09-19 09:42:37 -07:00
2020-08-19 08:16:12 +02:00
2019-07-03 17:52:09 -04:00
2020-08-21 13:05:37 +02:00
2020-10-07 08:01:28 +02:00
2019-05-21 10:50:46 +02:00
2020-10-01 13:17:43 +02:00
2020-06-17 16:40:29 +02:00
2019-05-21 10:50:46 +02:00
2020-06-17 16:40:24 +02:00
2020-10-29 09:58:03 +01:00
2020-08-21 13:05:26 +02:00
2019-08-30 08:11:25 -07:00
2019-07-19 10:42:02 -07:00
2020-08-21 13:05:29 +02:00
2020-07-22 09:33:12 +02:00
2020-10-29 09:57:45 +01:00
2020-08-19 08:16:27 +02:00
2019-08-30 07:27:17 -07:00
2019-08-30 07:27:17 -07:00
2020-10-29 09:57:42 +01:00
2020-10-29 09:57:53 +01:00
2020-10-29 09:58:08 +01:00
2020-08-26 10:40:51 +02:00
2019-09-19 10:06:57 -07:00
2019-07-19 10:42:02 -07:00
2019-08-30 07:27:18 -07:00
2019-10-12 20:49:07 -04:00
2020-10-01 13:17:51 +02:00
2020-10-29 09:58:05 +01:00
2020-08-21 13:05:37 +02:00
2019-09-17 11:48:24 -04:00
2019-08-12 19:33:50 -07:00
2020-10-29 09:58:06 +01:00
2020-06-17 16:40:24 +02:00
2019-07-19 10:42:02 -07:00
2020-02-11 04:35:12 -08:00
2019-05-21 10:50:45 +02:00
2019-05-30 11:26:32 -07:00
2020-06-03 08:21:27 +02:00
2019-05-21 10:50:45 +02:00
2020-09-03 11:26:39 +02:00
2019-07-19 10:42:02 -07:00
2019-05-21 10:50:45 +02:00
2020-10-01 13:17:55 +02:00
2020-09-03 11:26:57 +02:00
2020-01-14 20:08:18 +01:00
2019-05-30 11:29:21 -07:00
2020-01-09 10:20:05 +01:00
2019-06-19 17:09:55 +02:00
2020-05-14 07:58:27 +02:00
2020-10-29 09:57:45 +01:00
2020-03-05 16:43:36 +01:00
2020-10-01 13:17:19 +02:00
2019-05-21 10:50:45 +02:00
2019-10-14 15:04:01 -07:00
2020-01-12 12:21:37 +01:00
2020-02-11 04:35:37 -08:00
2020-10-07 08:01:31 +02:00
2020-11-05 11:43:13 +01:00
2019-08-07 21:51:47 -04:00
2019-08-19 11:00:39 -04:00
2020-05-27 17:46:12 +02:00
2020-04-17 10:50:21 +02:00
2019-09-06 21:28:49 +02:00
2019-09-12 21:06:14 -04:00
2019-07-16 22:52:37 -04:00
2019-05-21 10:50:45 +02:00
2020-09-03 11:27:04 +02:00
2019-07-19 10:42:02 -07:00
2020-03-25 08:25:58 +01:00
2020-01-17 19:48:21 +01:00
2020-10-14 10:32:57 +02:00
2019-12-17 19:55:30 +01:00
2019-09-18 16:59:14 -07:00
2019-06-24 09:16:47 +10:00
2020-04-01 11:02:17 +02:00
2020-03-25 08:25:41 +01:00
2019-09-18 16:59:14 -07:00
2019-05-21 10:50:45 +02:00
2019-07-16 22:52:37 -04:00
2020-01-17 19:48:21 +01:00
2020-03-05 16:43:48 +01:00
2019-10-16 23:15:09 -04:00
2019-05-30 11:26:32 -07:00
2019-05-25 18:00:06 -04:00
2020-03-18 07:17:51 +01:00
2019-05-25 18:00:07 -04:00
2020-05-02 08:48:44 +02:00
2019-05-30 11:29:53 -07:00
2019-05-21 10:50:45 +02:00
2019-09-06 21:28:49 +02:00
2020-02-11 04:35:23 -08:00
2020-01-29 16:45:31 +01:00
2019-07-16 19:23:25 -07:00
2019-08-13 16:06:52 -07:00
2020-08-26 10:40:58 +02:00
2019-12-17 19:56:52 +01:00
2019-05-21 10:50:45 +02:00
2019-10-03 14:21:35 -07:00
2020-05-06 08:15:15 +02:00
2019-05-14 09:47:50 -07:00
2019-08-01 20:51:23 +02:00
2020-01-04 19:18:32 +01:00
2020-02-11 04:35:12 -08:00
2020-08-11 15:33:39 +02:00