diff options
Diffstat (limited to 'daemon/client.c')
| -rw-r--r-- | daemon/client.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/daemon/client.c b/daemon/client.c index 80bc0c7..ac1045a 100644 --- a/daemon/client.c +++ b/daemon/client.c | |||
| @@ -520,14 +520,17 @@ static void process_recv(struct mux_client *client) | |||
| 520 | usbmuxd_log(LL_INFO, "Client %d version mismatch: expected %d, got %d", client->fd, USBMUXD_PROTOCOL_VERSION, hdr->version); | 520 | usbmuxd_log(LL_INFO, "Client %d version mismatch: expected %d, got %d", client->fd, USBMUXD_PROTOCOL_VERSION, hdr->version); |
| 521 | #endif | 521 | #endif |
| 522 | client_close(client); | 522 | client_close(client); |
| 523 | return; | ||
| 523 | } | 524 | } |
| 524 | if(hdr->length > client->ib_capacity) { | 525 | if(hdr->length > client->ib_capacity) { |
| 525 | usbmuxd_log(LL_INFO, "Client %d message is too long (%d bytes)", client->fd, hdr->length); | 526 | usbmuxd_log(LL_INFO, "Client %d message is too long (%d bytes)", client->fd, hdr->length); |
| 526 | client_close(client); | 527 | client_close(client); |
| 528 | return; | ||
| 527 | } | 529 | } |
| 528 | if(hdr->length < sizeof(struct usbmuxd_header)) { | 530 | if(hdr->length < sizeof(struct usbmuxd_header)) { |
| 529 | usbmuxd_log(LL_ERROR, "Client %d message is too short (%d bytes)", client->fd, hdr->length); | 531 | usbmuxd_log(LL_ERROR, "Client %d message is too short (%d bytes)", client->fd, hdr->length); |
| 530 | client_close(client); | 532 | client_close(client); |
| 533 | return; | ||
| 531 | } | 534 | } |
| 532 | if(client->ib_size < hdr->length) { | 535 | if(client->ib_size < hdr->length) { |
| 533 | if(did_read) | 536 | if(did_read) |
