mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-16 10:40:58 +00:00
BUG/MEDIUM: dns: make the port numbers unsigned
Mustafa Yildirim reported in Discourse that ports >32767 advertised in SRV records are wrong. Given the high value they definitely correspond to a sign extension of a negative number. The cause was indeed that the port is declared as a signed int in the dns_answer_item structure, and Lukas confirmed in github issue #103 that turning it to unsigned addresses the issue. It is worth noting that there are other such fields in this structure that don't look right (ttl, priority, class, type) and that someone should audit this part to be certain they are properly typed. This fix must be backported to 1.9 and likely to 1.8 as well.
This commit is contained in:
parent
3844747536
commit
d1f56c9a01
@ -146,7 +146,7 @@ struct dns_answer_item {
|
||||
int32_t ttl; /* response TTL */
|
||||
int16_t priority; /* SRV type priority */
|
||||
uint16_t weight; /* SRV type weight */
|
||||
int16_t port; /* SRV type port */
|
||||
uint16_t port; /* SRV type port */
|
||||
uint16_t data_len; /* number of bytes in target below */
|
||||
struct sockaddr address; /* IPv4 or IPv6, network format */
|
||||
char target[DNS_MAX_NAME_SIZE+1]; /* Response data: SRV or CNAME type target */
|
||||
|
Loading…
Reference in New Issue
Block a user