Bounds checking for socks domain name inputs.

pull/211/merge
Roger A. Light 11 years ago
parent b80402baf0
commit 07581446e6

@ -336,8 +336,10 @@ int mosquitto__socks5_read(struct mosquitto *mosq)
mosq->in_packet.to_process += 16+2-1; /* 16 bytes IPv6, 2 bytes port, -1 byte because we've already read the first byte */
mosq->in_packet.packet_length += 16+2-1;
}else if(mosq->in_packet.payload[3] == SOCKS_ATYPE_DOMAINNAME){
mosq->in_packet.to_process += mosq->in_packet.payload[4];
mosq->in_packet.packet_length += mosq->in_packet.payload[4];
if(mosq->in_packet.payload[4] > 0 && mosq->in_packet.payload[4] <= 255){
mosq->in_packet.to_process += mosq->in_packet.payload[4];
mosq->in_packet.packet_length += mosq->in_packet.payload[4];
}
}else{
_mosquitto_packet_cleanup(&mosq->in_packet);
return MOSQ_ERR_PROTOCOL;

Loading…
Cancel
Save