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 <jferlan@redhat.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
This commit is contained in:
John Ferlan 2019-11-12 18:36:22 -05:00
parent 10881fac46
commit f4db846c32

View File

@ -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;