From b1445d91462234acd2a2371d7e5850beed5f3bc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Fu=C3=9F?= Date: Tue, 17 Jan 2023 16:56:42 +0100 Subject: 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 --- libusb/os/netbsd_usb.c | 4 ++-- libusb/version_nano.h | 2 +- 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 -- cgit v1.2.1