core: Ensure that reported event bits are initialized
authorChris Dickens <christopher.a.dickens@gmail.com>
Mon, 24 Aug 2020 18:23:09 +0000 (11:23 -0700)
committerChris Dickens <christopher.a.dickens@gmail.com>
Mon, 24 Aug 2020 18:23:09 +0000 (11:23 -0700)
Closes #774

Signed-off-by: Chris Dickens <christopher.a.dickens@gmail.com>
libusb/io.c
libusb/libusbi.h
libusb/version_nano.h

index 48e964d..272177e 100644 (file)
@@ -2229,6 +2229,8 @@ static int handle_events(struct libusb_context *ctx, struct timeval *tv)
        if (tv->tv_usec % 1000)
                timeout_ms++;
 
+       reported_events.event_bits = 0;
+
        usbi_start_event_handling(ctx);
 
        r = usbi_wait_for_events(ctx, &reported_events, timeout_ms);
index b5b4a2a..d0e57e4 100644 (file)
@@ -686,10 +686,15 @@ static inline int usbi_using_timer(struct libusb_context *ctx)
 }
 
 struct usbi_reported_events {
-       unsigned int event_triggered:1;
+       union {
+               struct {
+                       unsigned int event_triggered:1;
 #ifdef HAVE_OS_TIMER
-       unsigned int timer_triggered:1;
+                       unsigned int timer_triggered:1;
 #endif
+               };
+               unsigned int event_bits;
+       };
        void *event_data;
        unsigned int event_data_count;
        unsigned int num_ready;
index acdfcec..a0044a0 100644 (file)
@@ -1 +1 @@
-#define LIBUSB_NANO 11549
+#define LIBUSB_NANO 11550