From: John Ferlan Date: Tue, 12 Nov 2019 23:36:22 +0000 (-0500) Subject: network: Check for QOS before blindly using it X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=f4db846c32c0a1e99a0f62b340273e48f8a98ed3;p=libvirt.git network: Check for QOS before blindly using it If networkAllocatePort calls networkPlugBandwidth eventually the port->bandwidth would be passed to virNetDevBandwidthPlug which requires that the parameter is non-NULL. Coverity additionally notes that since (!port->bandwidth) is checked earlier in the networkAllocatePort method that the subsequent call to blindly use if for a function that requires it needs to check. Signed-off-by: John Ferlan Reviewed-by: Daniel Henrique Barboza --- diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 68bb916501..9c49c70564 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -4567,6 +4567,13 @@ networkAllocatePort(virNetworkObjPtr obj, return -1; } + if (!port->bandwidth) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("QOS must be defined for network '%s'"), + netdef->name); + return -1; + } + if (networkPlugBandwidth(obj, &port->mac, port->bandwidth, &port->class_id) < 0) return -1; break; @@ -4633,6 +4640,13 @@ networkAllocatePort(virNetworkObjPtr obj, } } + if (!port->bandwidth) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("QOS must be defined for network '%s'"), + netdef->name); + return -1; + } + if (networkPlugBandwidth(obj, &port->mac, port->bandwidth, &port->class_id) < 0) return -1; break;