From: Laurent Vivier <laurent@vivier.eu>
To: Christian Borntraeger <borntraeger@de.ibm.com>,
Fam Zheng <fam@euphon.net>,
qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
qemu-block@nongnu.org, qemu-trivial@nongnu.org,
"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
Max Reitz <mreitz@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>
Subject: Re: [PATCH 1/4] vmdk: fix maybe uninitialized warnings
Date: Mon, 12 Oct 2020 16:16:21 +0200 [thread overview]
Message-ID: <ddd3c54d-fb22-f52c-ae99-1a5dffeeb1ae@vivier.eu> (raw)
In-Reply-To: <062fe426-3f05-eb02-0871-3c798e0885e4@de.ibm.com>
Le 05/10/2020 à 08:26, Christian Borntraeger a écrit :
> On 30.09.20 18:36, Fam Zheng wrote:
>> 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>
>
>
> Will this go via the block or trivial tree (cced).
>
Applied to my trivial-patches branch.
Thanks,
Laurent
next prev parent reply other threads:[~2020-10-12 14:18 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-30 15:58 [PATCH 0/4] assorted gcc 10/fedora32 compile warning fixes Christian Borntraeger
2020-09-30 15:58 ` [PATCH 1/4] vmdk: fix maybe uninitialized warnings Christian Borntraeger
2020-09-30 16:36 ` Fam Zheng
2020-10-05 6:26 ` Christian Borntraeger
2020-10-12 14:16 ` Laurent Vivier [this message]
2020-09-30 15:58 ` [PATCH 2/4] nbd: silence maybe-uninitialized warnings Christian Borntraeger
2020-09-30 17:19 ` Eric Blake
2020-10-05 6:25 ` Christian Borntraeger
2020-09-30 15:58 ` [PATCH 3/4] qemu-io-cmds: avoid gcc 10 warning Christian Borntraeger
2020-09-30 16:24 ` Dr. David Alan Gilbert
2020-09-30 16:25 ` Philippe Mathieu-Daudé
2020-09-30 15:58 ` [PATCH 4/4] virtiofsd: avoid false positive compiler warning Christian Borntraeger
2020-09-30 16:27 ` Dr. David Alan Gilbert
2020-10-05 6:25 ` Christian Borntraeger
2020-09-30 18:12 ` [PATCH 0/4] assorted gcc 10/fedora32 compile warning fixes no-reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ddd3c54d-fb22-f52c-ae99-1a5dffeeb1ae@vivier.eu \
--to=laurent@vivier.eu \
--cc=borntraeger@de.ibm.com \
--cc=dgilbert@redhat.com \
--cc=fam@euphon.net \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-trivial@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).