mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-24 12:20:59 +01:00
The struct resolv_answer_item contains an address field of type "sockaddr" which is only 16 bytes long, but which is used to store either IPv4 or IPv6. Fortunately, the contents only overlap with the "target" field that follows it and that is large enough to absorb the extra bytes needed to store AAAA records. But this is dangerous as just moving fields around could result in memory corruption. The fix uses a union and removes the casts that were used to hide the problem. Older versions need to be checked and possibly fixed. This needs to be backported anyway.