libusb_get_device_list() can return negative error code
diff --git a/examples/lsusb.c b/examples/lsusb.c index 193b23a..509e0bd 100644 --- a/examples/lsusb.c +++ b/examples/lsusb.c
@@ -18,6 +18,7 @@ */ #include <stdio.h> +#include <sys/types.h> #include <libusb/libusb.h> @@ -39,7 +40,7 @@ { libusb_device **devs; int r; - size_t cnt; + ssize_t cnt; r = libusb_init(); if (r < 0)
diff --git a/libusb/core.c b/libusb/core.c index d9340d6..f83305e 100644 --- a/libusb/core.c +++ b/libusb/core.c
@@ -26,6 +26,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <sys/types.h> #include "libusb.h" #include "libusbi.h" @@ -429,13 +430,13 @@ * \returns the number of devices in the outputted list, or LIBUSB_ERROR_NO_MEM * on memory allocation failure. */ -API_EXPORTED size_t libusb_get_device_list(libusb_device ***list) +API_EXPORTED ssize_t libusb_get_device_list(libusb_device ***list) { struct discovered_devs *discdevs = discovered_devs_alloc(); struct libusb_device **ret; int r = 0; size_t i; - size_t len; + ssize_t len; usbi_dbg(""); if (!discdevs)
diff --git a/libusb/libusb.h b/libusb/libusb.h index 3f04e91..07847bc 100644 --- a/libusb/libusb.h +++ b/libusb/libusb.h
@@ -23,6 +23,7 @@ #include <stdint.h> #include <sys/time.h> +#include <sys/types.h> #include <time.h> #ifdef __cplusplus @@ -659,7 +660,7 @@ int libusb_init(void); void libusb_exit(void); -size_t libusb_get_device_list(libusb_device ***list); +ssize_t libusb_get_device_list(libusb_device ***list); void libusb_free_device_list(libusb_device **list, int unref_devices); const struct libusb_device_descriptor *libusb_get_device_descriptor( libusb_device *dev);