diff options
Diffstat (limited to 'daemon')
| -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)  		usbmuxd_log(LL_INFO, "Client %d version mismatch: expected %d, got %d", client->fd, USBMUXD_PROTOCOL_VERSION, hdr->version);  #endif  		client_close(client); +		return;  	}  	if(hdr->length > client->ib_capacity) {  		usbmuxd_log(LL_INFO, "Client %d message is too long (%d bytes)", client->fd, hdr->length);  		client_close(client); +		return;  	}  	if(hdr->length < sizeof(struct usbmuxd_header)) {  		usbmuxd_log(LL_ERROR, "Client %d message is too short (%d bytes)", client->fd, hdr->length);  		client_close(client); +		return;  	}  	if(client->ib_size < hdr->length) {  		if(did_read) | 
