summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdgar Fuß <ef@math.uni-bonn.de>2023-01-17 16:56:42 +0100
committerTormod Volden <debian.tormod@gmail.com>2023-01-20 11:05:01 +0100
commitb1445d91462234acd2a2371d7e5850beed5f3bc8 (patch)
tree31f285910a1cfb698e2a713ba37f2bbfe01ed575
parent9e4bb9cbe59050d29f7662363c0a7bfc5cf35550 (diff)
downloadlibusb-b1445d91462234acd2a2371d7e5850beed5f3bc8.tar.gz
netbsd: Map NetBSD's udi_bus/udi_addr to libusb's 1-based API
NetBSD's udi_bus/udi_addr values in struct usb_device_info start from 0. However, libusb's bus_number/device_address in struct libusb_device use 0 to represent a missing value and the libusb API states that a value of 0 returned by libusb_get_bus_number() or libusb_get_device_address() means "not available" so applications may refuse to match on zero values. Adjust between the two worlds by adding an offset of 1. Closes #1230
-rw-r--r--libusb/os/netbsd_usb.c4
-rw-r--r--libusb/version_nano.h2
2 files changed, 3 insertions, 3 deletions
diff --git a/libusb/os/netbsd_usb.c b/libusb/os/netbsd_usb.c
index 461fea7..6b55522 100644
--- a/libusb/os/netbsd_usb.c
+++ b/libusb/os/netbsd_usb.c
@@ -146,8 +146,8 @@ netbsd_get_device_list(struct libusb_context * ctx,
if (dev == NULL)
return (LIBUSB_ERROR_NO_MEM);
- dev->bus_number = di.udi_bus;
- dev->device_address = di.udi_addr;
+ dev->bus_number = 1 + di.udi_bus;
+ dev->device_address = 1 + di.udi_addr;
dev->speed = di.udi_speed; /* NetBSD #define's happen to match libusb enum */
dpriv = usbi_get_device_priv(dev);
diff --git a/libusb/version_nano.h b/libusb/version_nano.h
index 1874d60..15fdcc8 100644
--- a/libusb/version_nano.h
+++ b/libusb/version_nano.h
@@ -1 +1 @@
-#define LIBUSB_NANO 11771
+#define LIBUSB_NANO 11772