summaryrefslogtreecommitdiffstats
path: root/src/usbmux.c
diff options
context:
space:
mode:
authorGravatar Jonathan Beck2009-03-16 21:40:33 +0100
committerGravatar Jonathan Beck2009-03-16 21:40:33 +0100
commit19992c668afeb53a28e08a1f61572b5379f87590 (patch)
tree4f1784b81afe88a6240889961b5fc3d2b0d6a82e /src/usbmux.c
parent0d05f8de79ee91e9be80c6296eff9ce216582ba4 (diff)
parent201e1ff5bf2054fcb1c0cc3cd7ba1e229dbde3fa (diff)
downloadlibimobiledevice-19992c668afeb53a28e08a1f61572b5379f87590.tar.gz
libimobiledevice-19992c668afeb53a28e08a1f61572b5379f87590.tar.bz2
Merge branch 'master' into contact_sync
Conflicts: configure.ac dev/Makefile.am include/libiphone/libiphone.h src/AFC.c src/AFC.h src/Makefile.am
Diffstat (limited to 'src/usbmux.c')
-rw-r--r--src/usbmux.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/usbmux.c b/src/usbmux.c
index 5eaa1d1..22ce588 100644
--- a/src/usbmux.c
+++ b/src/usbmux.c
@@ -309,7 +309,8 @@ iphone_error_t iphone_mux_recv(iphone_umux_client_t client, char *data, uint32_t
309 } 309 }
310 310
311 // Since we were able to fill the data straight from our buffer, we can just return datalen. See 2a above. 311 // Since we were able to fill the data straight from our buffer, we can just return datalen. See 2a above.
312 return datalen; 312 *recv_bytes = datalen;
313 return IPHONE_E_SUCCESS;
313 } else { 314 } else {
314 memcpy(data, client->recv_buffer, client->r_len); 315 memcpy(data, client->recv_buffer, client->r_len);
315 free(client->recv_buffer); // don't need to deal with anymore, but... 316 free(client->recv_buffer); // don't need to deal with anymore, but...
@@ -362,10 +363,10 @@ iphone_error_t iphone_mux_recv(iphone_umux_client_t client, char *data, uint32_t
362 if ((bytes - 28) > datalen) { 363 if ((bytes - 28) > datalen) {
363 // Copy what we need into the data, buffer the rest because we can. 364 // Copy what we need into the data, buffer the rest because we can.
364 memcpy(data + offset, buffer + 28, datalen); // data+offset: see #2b, above 365 memcpy(data + offset, buffer + 28, datalen); // data+offset: see #2b, above
365 complex = client->r_len + (bytes - 28) - datalen; 366 complex = client->r_len + ((bytes - 28) - datalen);
366 client->recv_buffer = (char *) realloc(client->recv_buffer, (sizeof(char) * complex)); 367 client->recv_buffer = (char *) realloc(client->recv_buffer, (sizeof(char) * complex));
367 client->r_len = complex; 368 client->r_len = complex;
368 complex = client->r_len - (bytes - 28) - datalen; 369 complex = client->r_len - ((bytes - 28) - datalen);
369 memcpy(client->recv_buffer + complex, buffer + 28 + datalen, (bytes - 28) - datalen); 370 memcpy(client->recv_buffer + complex, buffer + 28 + datalen, (bytes - 28) - datalen);
370 free(buffer); 371 free(buffer);
371 client->header->ocnt += bytes - 28; 372 client->header->ocnt += bytes - 28;