summaryrefslogtreecommitdiff
path: root/libusb/os/netbsd_usb.c
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 /libusb/os/netbsd_usb.c
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
Diffstat (limited to 'libusb/os/netbsd_usb.c')
-rw-r--r--libusb/os/netbsd_usb.c4
1 files changed, 2 insertions, 2 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);