usb: Match device by VID/PID without path/addr if it is unique

If there's only a single device with matching VID/PID attached,
we don't need to insist that either the path or the address of the
device matches.  Those are only needed to disambiguate multiple
devices with identical VID/PID.

Change-Id: I2ef245a56dfcf22758a0216b86d2a5c602ee5588
diff --git a/src/usb/osmo_libusb.c b/src/usb/osmo_libusb.c
index c5ea507..a249d10 100644
--- a/src/usb/osmo_libusb.c
+++ b/src/usb/osmo_libusb.c
@@ -537,7 +537,8 @@
 		addr = libusb_get_device_address(*dev);
 		path = osmo_libusb_dev_get_path_buf(pathbuf, sizeof(pathbuf), *dev);
 		if ((ifm->addr && addr == ifm->addr) ||
-		    (strlen(ifm->path) && !strcmp(path, ifm->path))) {
+		    (strlen(ifm->path) && !strcmp(path, ifm->path)) ||
+		    (!ifm->addr && !strlen(ifm->path) && !list[1] /* only one device */)) {
 			rc = libusb_open(*dev, &usb_devh);
 			if (rc < 0) {
 				fprintf(stderr, "Cannot open device: %s\n", libusb_error_name(rc));