diff --git a/ChangeLog b/ChangeLog index 97cf7356..daea7b05 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2014-02-22 Joerg Wunsch + + * usb_libusb.c (usbdev_recv_frame): Fix a bug where a new recv + request was issued even though all desired data had aldready + been received. + 2014-02-21 Joerg Wunsch * serial.h: Change the second parameter of the ser_open method diff --git a/usb_libusb.c b/usb_libusb.c index 8b512da7..b8e412a0 100644 --- a/usb_libusb.c +++ b/usb_libusb.c @@ -460,7 +460,7 @@ static int usbdev_recv_frame(union filedescriptor *fd, unsigned char *buf, size_ n += rv; nbytes -= rv; } - while (rv == fd->usb.max_xfer); + while (nbytes > 0 && rv == fd->usb.max_xfer); if (nbytes < 0) return -1;