[PATCH 0/3] Avoid some GCC 10 warnings

Caught these when switching to F32 using GCC v10.2.1 on s390x. Boris Fiuczynski (3): qemu: avoid maybe-uninitialized warning by GCC 10 tools: avoid potential null pointer dereference by GCC 10 storage: avoid maybe-uninitialized warning by GCC 10 src/qemu/qemu_migration.c | 2 +- src/storage/storage_backend_iscsi_direct.c | 8 ++++---- tools/vsh.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) -- 2.25.1

GCC 10 complains about "well_formed_uri" may be used uninitialzed. Even though it is a false positive, we can easily avoid it. Avoiding ../src/qemu/qemu_migration.c: In function ‘qemuMigrationDstPrepareDirect’: ../src/qemu/qemu_migration.c:2920:16: error: ‘well_formed_uri’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 2920 | if (well_formed_uri) { | ^ Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com> Reviewed-by: Marc Hartmayer <mhartmay@linux.ibm.com> --- src/qemu/qemu_migration.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 0f2f92b211..142faa2cf9 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -2886,7 +2886,7 @@ qemuMigrationDstPrepareDirect(virQEMUDriverPtr driver, *uri_out = g_strdup_printf(incFormat, "tcp", hostname, port); } else { - bool well_formed_uri; + bool well_formed_uri = false; if (!(uri = qemuMigrationAnyParseURI(uri_in, &well_formed_uri))) goto cleanup; -- 2.25.1

GCC 10 complains about "arg" possibly being a NULL dereference. Even though it might be a false positive, we can easily avoid it. Avoiding ../tools/vsh.c: In function ‘vshCommandOptStringReq’: ../tools/vsh.c:1034:19: error: potential null pointer dereference [-Werror=null-dereference] 1034 | else if (!*arg->data && !(arg->def->flags & VSH_OFLAG_EMPTY_OK)) | ~~~^~~~~~ Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com> Reviewed-by: Marc Hartmayer <mhartmay@linux.ibm.com> --- tools/vsh.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/vsh.c b/tools/vsh.c index 5e2e3ac219..11f493f969 100644 --- a/tools/vsh.c +++ b/tools/vsh.c @@ -1031,7 +1031,7 @@ vshCommandOptStringReq(vshControl *ctl, /* this should not be propagated here, just to be sure */ if (ret == -1) error = N_("Mandatory option not present"); - else if (!*arg->data && !(arg->def->flags & VSH_OFLAG_EMPTY_OK)) + else if (arg && !*arg->data && !(arg->def->flags & VSH_OFLAG_EMPTY_OK)) error = N_("Option argument is empty"); if (error) { -- 2.25.1

GCC 10 complains about variables may be used uninitialized. Even though it might be false positives, we can easily avoid them. Avoiding ../src/storage/storage_backend_iscsi_direct.c:634:11: error: ‘nb_block’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 634 | while (lba < nb_block) { | ^ ../src/storage/storage_backend_iscsi_direct.c:619:14: note: ‘nb_block’ was declared here 619 | uint64_t nb_block; | ^~~~~~~~ ../src/storage/storage_backend_iscsi_direct.c:637:16: error: ‘block_size’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 637 | task = iscsi_write16_sync(iscsi, lun, lba, data, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | block_size * to_write, | ~~~~~~~~~~~~~~~~~~~~~~ 639 | block_size, 0, 0, 0, 0, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ ../src/storage/storage_backend_iscsi_direct.c:618:14: note: ‘block_size’ was declared here 618 | uint32_t block_size; | ^~~~~~~~~~ ../src/storage/storage_backend_iscsi_direct.c: In function ‘virStorageBackendISCSIDirectRefreshPool’: ../src/storage/storage_backend_iscsi_direct.c:320:39: error: ‘nb_block’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 320 | vol->target.capacity = block_size * nb_block; | ~~~~~~~~~~~^~~~~~~~~~ ../src/storage/storage_backend_iscsi_direct.c:306:14: note: ‘nb_block’ was declared here 306 | uint64_t nb_block; | ^~~~~~~~ ../src/storage/storage_backend_iscsi_direct.c:320:39: error: ‘block_size’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 320 | vol->target.capacity = block_size * nb_block; | ~~~~~~~~~~~^~~~~~~~~~ ../src/storage/storage_backend_iscsi_direct.c:305:14: note: ‘block_size’ was declared here 305 | uint32_t block_size; | ^~~~~~~~~~ Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com> Reviewed-by: Marc Hartmayer <mhartmay@linux.ibm.com> --- src/storage/storage_backend_iscsi_direct.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/storage/storage_backend_iscsi_direct.c b/src/storage/storage_backend_iscsi_direct.c index c37c671db6..027fa83de7 100644 --- a/src/storage/storage_backend_iscsi_direct.c +++ b/src/storage/storage_backend_iscsi_direct.c @@ -302,8 +302,8 @@ virISCSIDirectRefreshVol(virStoragePoolObjPtr pool, char *portal) { virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool); - uint32_t block_size; - uint64_t nb_block; + uint32_t block_size = 0; + uint64_t nb_block = 0; g_autoptr(virStorageVolDef) vol = NULL; if (virISCSIDirectTestUnitReady(iscsi, lun) < 0) @@ -615,8 +615,8 @@ virStorageBackendISCSIDirectVolWipeZero(virStorageVolDefPtr vol, struct iscsi_context *iscsi) { uint64_t lba = 0; - uint32_t block_size; - uint64_t nb_block; + uint32_t block_size = 0; + uint64_t nb_block = 0; struct scsi_task *task = NULL; int lun = 0; int ret = -1; -- 2.25.1

On Thu, Aug 13, 2020 at 04:03:43PM +0200, Boris Fiuczynski wrote:
Caught these when switching to F32 using GCC v10.2.1 on s390x.
Boris Fiuczynski (3): qemu: avoid maybe-uninitialized warning by GCC 10 tools: avoid potential null pointer dereference by GCC 10 storage: avoid maybe-uninitialized warning by GCC 10
src/qemu/qemu_migration.c | 2 +- src/storage/storage_backend_iscsi_direct.c | 8 ++++---- tools/vsh.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-)
-- 2.25.1
Reviewed-by: Erik Skultety <eskultet@redhat.com>

On Mon, Aug 17, 2020 at 08:22 AM +0200, Erik Skultety <eskultet@redhat.com> wrote:
On Thu, Aug 13, 2020 at 04:03:43PM +0200, Boris Fiuczynski wrote:
Caught these when switching to F32 using GCC v10.2.1 on s390x.
Boris Fiuczynski (3): qemu: avoid maybe-uninitialized warning by GCC 10 tools: avoid potential null pointer dereference by GCC 10 storage: avoid maybe-uninitialized warning by GCC 10
src/qemu/qemu_migration.c | 2 +- src/storage/storage_backend_iscsi_direct.c | 8 ++++---- tools/vsh.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-)
-- 2.25.1
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Thanks. -- Kind regards / Beste Grüße Marc Hartmayer IBM Deutschland Research & Development GmbH Vorsitzender des Aufsichtsrats: Gregor Pillen Geschäftsführung: Dirk Wittkopp Sitz der Gesellschaft: Böblingen Registergericht: Amtsgericht Stuttgart, HRB 243294
participants (3)
-
Boris Fiuczynski
-
Erik Skultety
-
Marc Hartmayer