Chao Yu
e996821717
mm/slub: fix to return errno if kmalloc() fails
...
commit 7e9c323c52b379d261a72dc7bd38120a761a93cd upstream.
In create_unique_id(), kmalloc(, GFP_KERNEL) can fail due to
out-of-memory, if it fails, return errno correctly rather than
triggering panic via BUG_ON();
kernel BUG at mm/slub.c:5893!
Internal error: Oops - BUG: 0 [#1 ] PREEMPT SMP
Call trace:
sysfs_slab_add+0x258/0x260 mm/slub.c:5973
__kmem_cache_create+0x60/0x118 mm/slub.c:4899
create_cache mm/slab_common.c:229 [inline]
kmem_cache_create_usercopy+0x19c/0x31c mm/slab_common.c:335
kmem_cache_create+0x1c/0x28 mm/slab_common.c:390
f2fs_kmem_cache_create fs/f2fs/f2fs.h:2766 [inline]
f2fs_init_xattr_caches+0x78/0xb4 fs/f2fs/xattr.c:808
f2fs_fill_super+0x1050/0x1e0c fs/f2fs/super.c:4149
mount_bdev+0x1b8/0x210 fs/super.c:1400
f2fs_mount+0x44/0x58 fs/f2fs/super.c:4512
legacy_get_tree+0x30/0x74 fs/fs_context.c:610
vfs_get_tree+0x40/0x140 fs/super.c:1530
do_new_mount+0x1dc/0x4e4 fs/namespace.c:3040
path_mount+0x358/0x914 fs/namespace.c:3370
do_mount fs/namespace.c:3383 [inline]
__do_sys_mount fs/namespace.c:3591 [inline]
__se_sys_mount fs/namespace.c:3568 [inline]
__arm64_sys_mount+0x2f8/0x408 fs/namespace.c:3568
Cc: <stable@kernel.org>
Fixes: 81819f0fc8285 ("SLUB core")
Reported-by: syzbot+81684812ea68216e08c5@syzkaller.appspotmail.com
Reviewed-by: Muchun Song <songmuchun@bytedance.com>
Reviewed-by: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Signed-off-by: Chao Yu <chao.yu@oppo.com>
Acked-by: David Rientjes <rientjes@google.com>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-09-28 11:02:55 +02:00
..
2021-01-27 11:05:43 +01:00
2021-12-14 10:18:05 +01:00
2017-11-14 23:57:38 +02:00
2018-08-02 12:17:27 -06:00
2018-06-15 07:55:25 +09:00
2019-06-15 11:54:01 +02:00
2019-08-06 19:06:51 +02:00
2017-11-02 11:10:55 +01:00
2019-10-05 13:10:13 +02:00
2017-11-02 11:10:55 +01:00
2018-09-13 15:18:04 -10:00
2018-06-15 07:55:25 +09:00
2017-12-11 14:54:44 +01:00
2018-08-30 20:01:32 +02:00
2018-06-15 07:55:25 +09:00
2020-10-01 13:14:41 +02:00
2017-12-14 16:00:48 -08:00
2018-06-15 07:55:25 +09:00
2019-12-01 09:17:07 +01:00
2021-04-28 13:16:51 +02:00
2017-11-02 11:10:55 +01:00
2020-01-29 16:43:27 +01:00
2021-07-20 16:15:58 +02:00
2019-11-20 18:45:20 +01:00
2022-06-14 16:59:29 +02:00
2018-01-23 12:17:42 -06:00
2018-07-17 09:35:30 +02:00
2021-07-11 12:49:28 +02:00
2018-01-31 17:18:37 -08:00
2019-06-15 11:54:00 +02:00
2018-08-22 10:52:44 -07:00
2021-05-22 10:59:44 +02:00
2022-09-15 12:17:02 +02:00
2021-05-22 10:59:44 +02:00
2020-12-11 13:25:02 +01:00
2020-09-09 19:04:29 +02:00
2018-10-05 16:32:05 -07:00
2018-08-30 20:01:32 +02:00
2022-03-02 11:38:14 +01:00
2022-04-15 14:14:59 +02:00
2022-03-08 19:04:10 +01:00
2021-09-22 11:48:12 +02:00
2021-06-30 08:48:14 -04:00
2022-05-15 19:41:58 +02:00
2022-07-29 17:10:34 +02:00
2018-08-22 10:52:44 -07:00
2017-11-02 11:10:55 +01:00
2022-03-23 09:10:42 +01:00
2019-05-22 07:37:40 +02:00
2019-07-10 09:53:40 +02:00
2018-08-22 10:52:45 -07:00
2022-09-20 12:26:48 +02:00
2019-07-31 07:27:08 +02:00
2017-11-02 11:10:55 +01:00
2020-03-11 14:15:00 +01:00
2022-04-15 14:15:05 +02:00
2017-11-02 11:10:55 +01:00
2018-08-02 12:17:27 -06:00
2020-03-25 08:06:13 +01:00
2021-11-26 11:36:17 +01:00
2022-04-27 13:39:41 +02:00
2020-08-21 11:05:33 +02:00
2019-04-05 22:32:58 +02:00
2019-07-03 13:14:45 +02:00
2022-05-12 12:20:25 +02:00
2018-04-11 10:28:32 -07:00
2019-10-29 09:19:58 +01:00
2019-04-05 22:32:59 +02:00
2021-07-11 12:49:30 +02:00
2020-01-23 08:21:31 +01:00
2020-10-01 13:14:32 +02:00
2017-11-02 11:10:55 +01:00
2019-02-12 19:47:12 +01:00
2018-06-12 16:19:22 -07:00
2018-02-18 05:33:01 -08:00
2020-09-23 12:11:01 +02:00
2021-07-11 12:49:27 +02:00
2018-02-06 18:32:48 -08:00
2017-11-02 11:10:55 +01:00
2018-08-30 20:01:32 +02:00
2022-09-05 10:26:34 +02:00
2022-01-27 09:04:16 +01:00
2021-07-28 11:13:44 +02:00
2019-06-15 11:54:01 +02:00
2021-11-26 11:36:23 +01:00
2018-06-07 17:34:34 -07:00
2022-09-28 11:02:55 +02:00
2018-08-17 16:20:32 -07:00
2021-05-22 10:59:38 +02:00
2017-11-02 11:10:55 +01:00
2018-08-22 10:52:44 -07:00
2020-10-01 13:14:47 +02:00
2019-07-31 07:27:03 +02:00
2021-03-07 12:19:02 +01:00
2021-07-11 12:49:28 +02:00
2022-04-15 14:14:59 +02:00
2022-05-15 19:41:58 +02:00
2022-06-25 11:49:12 +02:00
2018-09-13 15:18:04 -10:00
2020-06-03 08:19:49 +02:00
2019-10-17 13:45:19 -07:00
2020-10-01 13:14:41 +02:00
2021-06-03 08:38:02 +02:00
2018-08-17 16:20:32 -07:00
2018-12-01 09:37:33 +01:00
2018-02-06 18:32:48 -08:00
2018-02-21 15:35:43 -08:00
2022-06-06 08:24:21 +02:00
2018-07-26 19:38:03 -07:00