diff options
| author | 2010-09-28 03:32:44 +0200 | |
|---|---|---|
| committer | 2010-09-28 03:32:44 +0200 | |
| commit | e534cc5ce4c7fa42c9314b26d7fa0cf288d39833 (patch) | |
| tree | b4451233b7899b30d0d1939eb1c693d8376ce2e3 | |
| parent | 375c07f27e591d3fffcb9b8103e535b0f471182a (diff) | |
| download | usbmuxd-e534cc5ce4c7fa42c9314b26d7fa0cf288d39833.tar.gz usbmuxd-e534cc5ce4c7fa42c9314b26d7fa0cf288d39833.tar.bz2 | |
Fix potential issue with USB transactions >=32k multiples of 16kv1.0.6
| -rw-r--r-- | daemon/device.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/daemon/device.c b/daemon/device.c index 0a143b2..8c786a7 100644 --- a/daemon/device.c +++ b/daemon/device.c | |||
| @@ -576,7 +576,7 @@ void device_data_input(struct usb_device *usbdev, unsigned char *buffer, uint32_ | |||
| 576 | } | 576 | } |
| 577 | memcpy(dev->pktbuf + dev->pktlen, buffer, length); | 577 | memcpy(dev->pktbuf + dev->pktlen, buffer, length); |
| 578 | struct mux_header *mhdr = (struct mux_header *)dev->pktbuf; | 578 | struct mux_header *mhdr = (struct mux_header *)dev->pktbuf; |
| 579 | if((length < USB_MRU) || (ntohl(mhdr->length) == length)) { | 579 | if((length < USB_MRU) || (ntohl(mhdr->length) == (length + dev->pktlen))) { |
| 580 | buffer = dev->pktbuf; | 580 | buffer = dev->pktbuf; |
| 581 | length += dev->pktlen; | 581 | length += dev->pktlen; |
| 582 | dev->pktlen = 0; | 582 | dev->pktlen = 0; |
