Re: [PATCH-next] fs/btrfs: Fix uninitialized variable

From: Boris Burkov
Date: Tue Apr 13 2021 - 13:25:08 EST


On Tue, Apr 13, 2021 at 02:06:04PM +0100, Khaled ROMDHANI wrote:
> The variable zone is not initialized. It
> may causes a failed assertion.
>
> Addresses-Coverity: ("Uninitialized variables")
>
> Signed-off-by: Khaled ROMDHANI <khaledromdhani216@xxxxxxxxx>

Reviewed-by: Boris Burkov <boris@xxxxxx>

> ---
> fs/btrfs/zoned.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c
> index eeb3ebe11d7a..ee15ab8dccb5 100644
> --- a/fs/btrfs/zoned.c
> +++ b/fs/btrfs/zoned.c
> @@ -136,7 +136,7 @@ static int sb_write_pointer(struct block_device *bdev, struct blk_zone *zones,
> */
> static inline u32 sb_zone_number(int shift, int mirror)
> {
> - u64 zone;
> + u64 zone = 0;
>
> ASSERT(mirror < BTRFS_SUPER_MIRROR_MAX);

Thanks for the fix.

I assume this was dug up by coverity static analysis rather than hitting
it in a live system?

Since there is already an assert for the pre-condition 'mirror < max',
I feel like it would make sense to also add one for mirror > 0.

> switch (mirror) {
> --
> 2.17.1
>