[libvirt] [PATCH 3/3] network: Check for QOS before blindly using it

John Ferlan jferlan at redhat.com
Thu Nov 14 21:58:08 UTC 2019


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 at redhat.com>
---
 src/network/bridge_driver.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

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




More information about the libvir-list mailing list