ext4: fix potential NULL pointer dereference in ext4_fill_super()
authorLukas Czerner <lczerner@redhat.com>
Wed, 19 Jan 2022 13:02:09 +0000 (14:02 +0100)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 3 Feb 2022 15:57:44 +0000 (10:57 -0500)
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 <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Link: https://lore.kernel.org/r/20220119130209.40112-1-lczerner@redhat.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@kernel.org
fs/ext4/super.c

index 57914acc54028c2e4af99068b93a5cea4fe8ea48..d1c4b04e72ab04d9dd05bf767419d2f7fb027b4e 100644 (file)
@@ -5541,7 +5541,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;