]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
bridge: check for invalid MAC in networkGetDHCPLeases
authorJán Tomko <jtomko@redhat.com>
Thu, 3 Dec 2015 08:47:23 +0000 (09:47 +0100)
committerCole Robinson <crobinso@redhat.com>
Wed, 23 Dec 2015 23:31:03 +0000 (18:31 -0500)
Instead of comparing garbage strings against real MAC addresses,
introduce an error mesage for unparsable ones:

$ virsh net-dhcp-leases default  --mac t12
error: Failed to get leases info for default
error: invalid MAC address: t12

https://bugzilla.redhat.com/show_bug.cgi?id=1261432
(cherry picked from commit 1e6d87bdfc801d2c006a17054bd19273430dce14)

src/network/bridge_driver.c

index 3d6721b9b519db8ca825e9b5311cbfa1e268893e..2c8b3b5fe74dc381c6494b2a2fc5cb6424874fb6 100644 (file)
@@ -3615,9 +3615,16 @@ networkGetDHCPLeases(virNetworkPtr network,
     virNetworkDHCPLeasePtr lease = NULL;
     virNetworkDHCPLeasePtr *leases_ret = NULL;
     virNetworkObjPtr obj;
+    virMacAddr mac_addr;
 
     virCheckFlags(0, -1);
 
+    /* only to check if the MAC is valid */
+    if (mac && virMacAddrParse(mac, &mac_addr) < 0) {
+        virReportError(VIR_ERR_INVALID_MAC, "%s", mac);
+        return -1;
+    }
+
     if (!(obj = networkObjFromNetwork(network)))
         return -1;