[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/4] vmdk: fix maybe uninitialized warnings
From: |
Fam Zheng |
Subject: |
Re: [PATCH 1/4] vmdk: fix maybe uninitialized warnings |
Date: |
Wed, 30 Sep 2020 17:36:29 +0100 |
On Wed, 2020-09-30 at 17:58 +0200, Christian Borntraeger wrote:
> Fedora 32 gcc 10 seems to give false positives:
>
> Compiling C object libblock.fa.p/block_vmdk.c.o
> ../block/vmdk.c: In function ‘vmdk_parse_extents’:
> ../block/vmdk.c:587:5: error: ‘extent’ may be used uninitialized in
> this function [-Werror=maybe-uninitialized]
> 587 | g_free(extent->l1_table);
> | ^~~~~~~~~~~~~~~~~~~~~~~~
> ../block/vmdk.c:754:17: note: ‘extent’ was declared here
> 754 | VmdkExtent *extent;
> | ^~~~~~
> ../block/vmdk.c:620:11: error: ‘extent’ may be used uninitialized in
> this function [-Werror=maybe-uninitialized]
> 620 | ret = vmdk_init_tables(bs, extent, errp);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../block/vmdk.c:598:17: note: ‘extent’ was declared here
> 598 | VmdkExtent *extent;
> | ^~~~~~
> ../block/vmdk.c:1178:39: error: ‘extent’ may be used uninitialized in
> this function [-Werror=maybe-uninitialized]
> 1178 | extent->flat_start_offset = flat_offset << 9;
> | ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
> ../block/vmdk.c: In function ‘vmdk_open_vmdk4’:
> ../block/vmdk.c:581:22: error: ‘extent’ may be used uninitialized in
> this function [-Werror=maybe-uninitialized]
> 581 | extent->l2_cache =
> | ~~~~~~~~~~~~~~~~~^
> 582 | g_malloc(extent->entry_size * extent->l2_size *
> L2_CACHE_SIZE);
> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ~~~~~~~~~
> ../block/vmdk.c:872:17: note: ‘extent’ was declared here
> 872 | VmdkExtent *extent;
> | ^~~~~~
> ../block/vmdk.c: In function ‘vmdk_open’:
> ../block/vmdk.c:620:11: error: ‘extent’ may be used uninitialized in
> this function [-Werror=maybe-uninitialized]
> 620 | ret = vmdk_init_tables(bs, extent, errp);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../block/vmdk.c:598:17: note: ‘extent’ was declared here
> 598 | VmdkExtent *extent;
> | ^~~~~~
> cc1: all warnings being treated as errors
> make: *** [Makefile.ninja:884: libblock.fa.p/block_vmdk.c.o] Error 1
>
> fix them by assigning a default value.
>
> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
> ---
> block/vmdk.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/block/vmdk.c b/block/vmdk.c
> index 8ec62c7ab798..a00dc00eb47a 100644
> --- a/block/vmdk.c
> +++ b/block/vmdk.c
> @@ -595,7 +595,7 @@ static int vmdk_open_vmfs_sparse(BlockDriverState
> *bs,
> int ret;
> uint32_t magic;
> VMDK3Header header;
> - VmdkExtent *extent;
> + VmdkExtent *extent = NULL;
>
> ret = bdrv_pread(file, sizeof(magic), &header, sizeof(header));
> if (ret < 0) {
> @@ -751,7 +751,7 @@ static int vmdk_open_se_sparse(BlockDriverState
> *bs,
> int ret;
> VMDKSESparseConstHeader const_header;
> VMDKSESparseVolatileHeader volatile_header;
> - VmdkExtent *extent;
> + VmdkExtent *extent = NULL;
>
> ret = bdrv_apply_auto_read_only(bs,
> "No write support for seSparse images available", errp);
> @@ -869,7 +869,7 @@ static int vmdk_open_vmdk4(BlockDriverState *bs,
> uint32_t magic;
> uint32_t l1_size, l1_entry_sectors;
> VMDK4Header header;
> - VmdkExtent *extent;
> + VmdkExtent *extent = NULL;
> BDRVVmdkState *s = bs->opaque;
> int64_t l1_backup_offset = 0;
> bool compressed;
> @@ -1088,7 +1088,7 @@ static int vmdk_parse_extents(const char *desc,
> BlockDriverState *bs,
> BdrvChild *extent_file;
> BdrvChildRole extent_role;
> BDRVVmdkState *s = bs->opaque;
> - VmdkExtent *extent;
> + VmdkExtent *extent = NULL;
> char extent_opt_prefix[32];
> Error *local_err = NULL;
>
Looks trivial, and correct.
Reviewed-by: Fam Zheng <fam@euphon.net>
- [PATCH 0/4] assorted gcc 10/fedora32 compile warning fixes, Christian Borntraeger, 2020/09/30
- [PATCH 3/4] qemu-io-cmds: avoid gcc 10 warning, Christian Borntraeger, 2020/09/30
- [PATCH 1/4] vmdk: fix maybe uninitialized warnings, Christian Borntraeger, 2020/09/30
- Re: [PATCH 1/4] vmdk: fix maybe uninitialized warnings,
Fam Zheng <=
- [PATCH 2/4] nbd: silence maybe-uninitialized warnings, Christian Borntraeger, 2020/09/30
- [PATCH 4/4] virtiofsd: avoid false positive compiler warning, Christian Borntraeger, 2020/09/30
- Re: [PATCH 0/4] assorted gcc 10/fedora32 compile warning fixes, no-reply, 2020/09/30