By mistake we fail to return an error from ext4_fill_super() in case
that ext4_alloc_sbi() fails to allocate a new sbi. Instead we just set
the ret variable and allow the function to continue which will later
lead to a NULL pointer dereference. Fix it by returning -ENOMEM in the
case ext4_alloc_sbi() fails.
Fixes: cebe85d570cf ("ext4: switch to the new mount api")
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>
Signed-off-by: Lukas Czerner <[email protected]>
---
fs/ext4/super.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index db9fe4843529..6023ebb5b19d 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -5543,7 +5543,7 @@ static int ext4_fill_super(struct super_block *sb, struct fs_context *fc)
sbi = ext4_alloc_sbi(sb);
if (!sbi)
- ret = -ENOMEM;
+ return -ENOMEM;
fc->s_fs_info = sbi;
--
2.31.1
On Wed, 19 Jan 2022 14:02:09 +0100, Lukas Czerner wrote:
> By mistake we fail to return an error from ext4_fill_super() in case
> that ext4_alloc_sbi() fails to allocate a new sbi. Instead we just set
> the ret variable and allow the function to continue which will later
> lead to a NULL pointer dereference. Fix it by returning -ENOMEM in the
> case ext4_alloc_sbi() fails.
>
>
> [...]
Applied, thanks!
[1/1] ext4: fix potential NULL pointer dereference in ext4_fill_super()
commit: 7c6bb3d664aa05bf4366fd79a13921acfca28a6d
Best regards,
--
Theodore Ts'o <[email protected]>