]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virsh: Deal with multiple matching devices in domif-getlink
authorMichal Privoznik <mprivozn@redhat.com>
Wed, 4 Oct 2017 15:39:59 +0000 (17:39 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Fri, 13 Oct 2017 20:47:17 +0000 (13:47 -0700)
The command tries to match interface in domain definition by MAC
address or interface name. However, since it's possible to
configure two interfaces with the same MAC address, it may
happen that the XPath returns two or more nodes. We should check
for that.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
tools/virsh-domain-monitor.c

index 0ca53e438e6c2efd77e473dd250015aa7f12ffb5..4c50155e109a8440c3d0e4333d3e28d55afd2b9f 100644 (file)
@@ -707,13 +707,16 @@ cmdDomIfGetLink(vshControl *ctl, const vshCmd *cmd)
         goto cleanup;
     }
 
-    if (ninterfaces != 1) {
+    if (ninterfaces < 1) {
         if (macstr[0])
             vshError(ctl, _("Interface (mac: %s) not found."), macstr);
         else
             vshError(ctl, _("Interface (dev: %s) not found."), iface);
 
         goto cleanup;
+    } else if (ninterfaces > 1) {
+        vshError(ctl, _("multiple matching interfaces found"));
+        goto cleanup;
     }
 
     ctxt->node = interfaces[0];