
On 3/19/19 8:46 AM, Daniel P. Berrangé wrote:
The port allocation APIs are currently called unconditionally for all types of NIC, but (mostly) only do anything for NICs with type=network.
The exception is the port allocate API which does some validation even for NICs with type!=network. Relying on this validation is flawed, however, since the network driver may not even be installed. IOW virt drivers must not delegate validation to the network driver for NICs with type != network.
This change allows us to report errors when the virtual network driver is not registered.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- src/conf/domain_conf.c | 26 ++++++++------ src/libxl/libxl_domain.c | 6 ++-- src/libxl/libxl_driver.c | 9 +++-- src/lxc/lxc_driver.c | 6 ++-- src/lxc/lxc_process.c | 9 +++-- src/network/bridge_driver.c | 72 +++++++++++++++++++------------------ src/qemu/qemu_driver.c | 6 ++-- src/qemu/qemu_hotplug.c | 17 +++++---- src/qemu/qemu_process.c | 9 +++-- 9 files changed, 94 insertions(+), 66 deletions(-)
[...]
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 4d4ab0f375..cf37a16c64 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -4371,8 +4371,11 @@ networkAllocateActualDevice(virDomainDefPtr dom, size_t i; int ret = -1;
- if (iface->type != VIR_DOMAIN_NET_TYPE_NETWORK) - goto validate; + if (iface->type != VIR_DOMAIN_NET_TYPE_NETWORK) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Expected a interface for a virtual network"));
Oops. Missed this the first time through - should be "an interface", not "a interface". There's a second occurence of this in networkReleaseActualDevice().