summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Zach C2008-07-30 20:38:36 -0700
committerGravatar Matt Colyer2008-07-30 20:38:36 -0700
commit9e745d180199d39249305275bdc5242634671238 (patch)
tree9b1e1af02a93ced705558c8b0f652058ddd3eaad
parent1f81e7f15d0172a4ca5698155b3fef818f6212fb (diff)
downloadlibplist-9e745d180199d39249305275bdc5242634671238.tar.gz
libplist-9e745d180199d39249305275bdc5242634671238.tar.bz2
Fixed a slight bug if datalen == bytes in usbmux.c
-rw-r--r--src/usbmux.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/usbmux.c b/src/usbmux.c
index 8c5fc34..7985b3a 100644
--- a/src/usbmux.c
+++ b/src/usbmux.c
@@ -187,7 +187,8 @@ int mux_recv(iPhone *phone, usbmux_tcp_header *connection, char *data, uint32 da
} else {// all's good, they didn't do anything bonky.
my_datalen = ntohl(buffer[4]) - 28;
connection->ocnt += my_datalen;
- memcpy(data, buffer+28, datalen);
+ if (bytes == (datalen+28)) memcpy(data, buffer+28, datalen);
+ else if (bytes == datalen) memcpy(data, buffer+28, datalen-28);
free(buffer);
if (debug) printf("mux_recv: bytes received: %i\n", bytes - 28);
return bytes - 28;