]> xenbits.xensource.com Git - libvirt.git/commitdiff
network: Check for QOS before blindly using it
authorJohn Ferlan <jferlan@redhat.com>
Tue, 12 Nov 2019 23:36:22 +0000 (18:36 -0500)
committerJohn Ferlan <jferlan@redhat.com>
Tue, 19 Nov 2019 12:02:08 +0000 (07:02 -0500)
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>
src/network/bridge_driver.c

index 68bb916501c292d7eb00ab058ea415e9f3ad07e1..9c49c705643d498c5476fee8a0177d5d22c60402 100644 (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;