ext4: initialize err_blk before calling __ext4_get_inode_loc
authorHarshad Shirwadkar <harshadshirwadkar@gmail.com>
Wed, 1 Dec 2021 16:34:21 +0000 (08:34 -0800)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 10 Jan 2022 18:25:55 +0000 (13:25 -0500)
It is not guaranteed that __ext4_get_inode_loc will definitely set
err_blk pointer when it returns EIO. To avoid using uninitialized
variables, let's first set err_blk to 0.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Harshad Shirwadkar <harshadshirwadkar@gmail.com>
Link: https://lore.kernel.org/r/20211201163421.2631661-1-harshads@google.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@kernel.org
fs/ext4/inode.c

index 08a90e2..bca9951 100644 (file)
@@ -4524,7 +4524,7 @@ has_buffer:
 static int __ext4_get_inode_loc_noinmem(struct inode *inode,
                                        struct ext4_iloc *iloc)
 {
-       ext4_fsblk_t err_blk;
+       ext4_fsblk_t err_blk = 0;
        int ret;
 
        ret = __ext4_get_inode_loc(inode->i_sb, inode->i_ino, NULL, iloc,
@@ -4539,7 +4539,7 @@ static int __ext4_get_inode_loc_noinmem(struct inode *inode,
 
 int ext4_get_inode_loc(struct inode *inode, struct ext4_iloc *iloc)
 {
-       ext4_fsblk_t err_blk;
+       ext4_fsblk_t err_blk = 0;
        int ret;
 
        ret = __ext4_get_inode_loc(inode->i_sb, inode->i_ino, inode, iloc,