2021-12-01 16:34:45

by harshad shirwadkar

[permalink] [raw]
Subject: [PATCH] ext4: initialize err_blk before calling __ext4_get_inode_loc

From: Harshad Shirwadkar <[email protected]>

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 <[email protected]>
Signed-off-by: Harshad Shirwadkar <[email protected]>
---
fs/ext4/inode.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index bfd3545f1e5d..fbdd2dda57ae 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -4523,7 +4523,7 @@ static int __ext4_get_inode_loc(struct super_block *sb, unsigned long ino,
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,
@@ -4538,7 +4538,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,
--
2.34.0.rc2.393.gf8c9666880-goog



2021-12-27 05:34:55

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH] ext4: initialize err_blk before calling __ext4_get_inode_loc

On Wed, 1 Dec 2021 08:34:21 -0800, Harshad Shirwadkar wrote:
> From: Harshad Shirwadkar <[email protected]>
>
> 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.
>
>
> [...]

Applied, thanks!

[1/1] ext4: initialize err_blk before calling __ext4_get_inode_loc
commit: 613da7163720054004f596e5f5230753b50a7f45

Best regards,
--
Theodore Ts'o <[email protected]>