[libvirt PATCH 0/3] coverity diaries

Ján Tomko (3): virsh: virshAddressParse: check for malformed address qemuBuildMemoryDeviceStr: check return of qemuBuildDeviceAddressStr hyperv: remove duplicit addr check src/hyperv/hyperv_driver.c | 3 --- src/qemu/qemu_command.c | 3 ++- tools/virsh-domain.c | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) -- 2.26.2

The refactor left in the 'if (addr)' check, but before 'addr' was the return value of strchr and now it's the return value of virshAddressParse. Check 'a' instead since that's the return of strchr now. Signed-off-by: Ján Tomko <jtomko@redhat.com> Fixes: 67bf91e1c38b6569357c22b1c83f7b090badba2b --- tools/virsh-domain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c index befa8d2448..1ef9b8d606 100644 --- a/tools/virsh-domain.c +++ b/tools/virsh-domain.c @@ -124,7 +124,7 @@ virshAddressParse(const char *str, g_autofree char *type = g_strdup(str); char *a = strchr(type, ':'); - if (!addr) + if (!a) return -1; *a = '\0'; -- 2.26.2

Although the function currently only returns errors for PCI addresses, check it here too, in case that chamges in the future. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/qemu/qemu_command.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 76edc3c617..b06a086e18 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -3317,7 +3317,8 @@ qemuBuildMemoryDeviceStr(const virDomainDef *def, virBufferAsprintf(&buf, "memdev=mem%s,id=%s", mem->info.alias, mem->info.alias); - qemuBuildDeviceAddressStr(&buf, def, &mem->info, qemuCaps); + if (qemuBuildDeviceAddressStr(&buf, def, &mem->info, qemuCaps) < 0) + return NULL; break; case VIR_DOMAIN_MEMORY_MODEL_NONE: -- 2.26.2

On Thu, 2020-12-10 at 10:41 +0100, Ján Tomko wrote:
Although the function currently only returns errors for PCI addresses, check it here too, in case that chamges in the future. typo ^ changes
Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/qemu/qemu_command.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 76edc3c617..b06a086e18 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -3317,7 +3317,8 @@ qemuBuildMemoryDeviceStr(const virDomainDef *def, virBufferAsprintf(&buf, "memdev=mem%s,id=%s", mem->info.alias, mem->info.alias);
- qemuBuildDeviceAddressStr(&buf, def, &mem->info, qemuCaps); + if (qemuBuildDeviceAddressStr(&buf, def, &mem->info, qemuCaps) < 0) + return NULL; break;
case VIR_DOMAIN_MEMORY_MODEL_NONE:

On a Thursday in 2020, Tim Wiederhake wrote:
On Thu, 2020-12-10 at 10:41 +0100, Ján Tomko wrote:
Although the function currently only returns errors for PCI addresses, check it here too, in case that chamges in the future. typo ^ changes
Thamks, fixed. Jano
Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/qemu/qemu_command.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 76edc3c617..b06a086e18 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -3317,7 +3317,8 @@ qemuBuildMemoryDeviceStr(const virDomainDef *def, virBufferAsprintf(&buf, "memdev=mem%s,id=%s", mem->info.alias, mem->info.alias);
- qemuBuildDeviceAddressStr(&buf, def, &mem->info, qemuCaps); + if (qemuBuildDeviceAddressStr(&buf, def, &mem->info, qemuCaps) < 0) + return NULL; break;
case VIR_DOMAIN_MEMORY_MODEL_NONE:

We already check addr is not negative right after filling its value. There's no need to check it before using it too. Signed-off-by: Ján Tomko <jtomko@redhat.com> Fixes: a7a1d1f59e8ba2d8a3ed920ef595ccdfb0d8feb6 --- src/hyperv/hyperv_driver.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/hyperv/hyperv_driver.c b/src/hyperv/hyperv_driver.c index c2c103aa3b..1200bf02ff 100644 --- a/src/hyperv/hyperv_driver.c +++ b/src/hyperv/hyperv_driver.c @@ -561,9 +561,6 @@ hypervDomainDefParsePhysicalDisk(hypervPrivate *priv, driveNumberStr = g_strdup_printf("%u", diskdrive->data->DriveNumber); virDomainDiskSetSource(disk, driveNumberStr); - if (addr < 0) - goto cleanup; - if (controller->data->ResourceType == MSVM_RASD_RESOURCETYPE_PARALLEL_SCSI_HBA) { for (i = 0; i < HYPERV_MAX_SCSI_CONTROLLERS; i++) { if (controller == scsiControllers[i]) { -- 2.26.2

On 12/10/20 10:41 AM, Ján Tomko wrote:
Ján Tomko (3): virsh: virshAddressParse: check for malformed address qemuBuildMemoryDeviceStr: check return of qemuBuildDeviceAddressStr hyperv: remove duplicit addr check
src/hyperv/hyperv_driver.c | 3 --- src/qemu/qemu_command.c | 3 ++- tools/virsh-domain.c | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-)
Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Michal
participants (3)
-
Ján Tomko
-
Michal Privoznik
-
Tim Wiederhake