diff options
Diffstat (limited to 'src/usbmux.c')
| -rw-r--r-- | src/usbmux.c | 7 |
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; |
