diff --git a/src/libprs500/communicate.py b/src/libprs500/communicate.py index 96cc00f2f3..5aa09452de 100755 --- a/src/libprs500/communicate.py +++ b/src/libprs500/communicate.py @@ -375,7 +375,7 @@ class PRS500Device(Device): rsize = size if size % msize: rsize = size - size % msize + msize - data = data_type(self.handle.bulk_read(self.BULK_IN_EP, rsize)[:size]) + data = data_type(self.handle.bulk_read(self.BULK_IN_EP, rsize)) if self.log_packets: self.log_packet(data, "Answer d->h") return data diff --git a/src/libprs500/libusb.py b/src/libprs500/libusb.py index 28fd023d19..8e1be2329d 100644 --- a/src/libprs500/libusb.py +++ b/src/libprs500/libusb.py @@ -253,6 +253,8 @@ class DeviceHandle(Structure): if rsize < 0: raise Error('Could not read ' + str(size) + ' bytes on the '\ 'bulk bus. Error code: ' + str(rsize)) + if rsize < size: + arr = arr[:rsize] return arr def bulk_write(self, endpoint, bytes, timeout=100):