[PATCH 1/6] qemuBuildHostNetProps: Report proper errors for unhandled interface types

Martin Kletzander mkletzan at redhat.com
Mon Mar 6 10:38:32 UTC 2023


On Mon, Mar 06, 2023 at 10:20:30AM +0100, Peter Krempa wrote:
>VIR_DOMAIN_NET_TYPE_NULL and VIR_DOMAIN_NET_TYPE_VDS are not implemented
>for the qemu driver but the formatter code in 'qemuBuildHostNetProps'
>didn't report an error for them and didn't even return from the function
>when they were encountered.
>
>This caused a crash in 'virJSONValueObjectAppendStringPrintf' which
>does not tolerate NULL JSON object to append to when the unsupported
>devices were used.
>
>Properly report error when unhandled devices are encountered. This also
>includes the case for VIR_DOMAIN_NET_TYPE_HOSTDEV, but that code path
>should never be reached.
>
>Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2175582
>Fixes: 6457619d186

Technically bac6b266fb6a was the first offender ;)

>Fixes: 0225483adce
>Signed-off-by: Peter Krempa <pkrempa at redhat.com>
>---
> src/qemu/qemu_command.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
>diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
>index 4839d45a34..589ec3e639 100644
>--- a/src/qemu/qemu_command.c
>+++ b/src/qemu/qemu_command.c
>@@ -3995,8 +3995,14 @@ qemuBuildHostNetProps(virDomainObj *vm,
>         /* Should have been handled earlier via PCI/USB hotplug code. */
>     case VIR_DOMAIN_NET_TYPE_NULL:
>     case VIR_DOMAIN_NET_TYPE_VDS:
>+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
>+                       _("network device type '%s' is not supported by this hypervisor"),
>+                       virDomainNetTypeToString(netType));
>+        return NULL;
>+
>     case VIR_DOMAIN_NET_TYPE_LAST:
>-        break;
>+        virReportEnumRangeError(virDomainNetType, netType);
>+        return NULL;
>     }
>
>     if (virJSONValueObjectAppendStringPrintf(netprops, "id", "host%s", net->info.alias) < 0)
>-- 
>2.39.2
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20230306/01e18663/attachment.sig>


More information about the libvir-list mailing list