[libvirt] [PATCH 01/19] util: permit querying a VF MAC address or VLAN tag by itself

Laine Stump laine at laine.org
Fri Mar 10 20:34:54 UTC 2017


virNetDevParseVfConfig() assumed that both the MAC address and VLAN
tag pointers were valid, so even if you only wanted one or the other,
you would need a variable to hold the returned value for both. This
patch checks each for a NULL pointer before filling it in.
---
 src/util/virnetdev.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
index d123248..75f969d 100644
--- a/src/util/virnetdev.c
+++ b/src/util/virnetdev.c
@@ -1534,7 +1534,7 @@ virNetDevParseVfConfig(struct nlattr **tb, int32_t vf, virMacAddrPtr mac,
             goto cleanup;
         }
 
-        if (tb[IFLA_VF_MAC]) {
+        if (mac && tb[IFLA_VF_MAC]) {
             vf_mac = RTA_DATA(tb_vf[IFLA_VF_MAC]);
             if (vf_mac && vf_mac->vf == vf)  {
                 virMacAddrSetRaw(mac, vf_mac->mac);
@@ -1542,7 +1542,7 @@ virNetDevParseVfConfig(struct nlattr **tb, int32_t vf, virMacAddrPtr mac,
             }
         }
 
-        if (tb[IFLA_VF_VLAN]) {
+        if (vlanid && tb[IFLA_VF_VLAN]) {
             vf_vlan = RTA_DATA(tb_vf[IFLA_VF_VLAN]);
             if (vf_vlan && vf_vlan->vf == vf)  {
                 *vlanid = vf_vlan->vlan;
-- 
2.9.3




More information about the libvir-list mailing list