url2sa() mistakenly uses "addr" as a reference. This causes a segfault when
option http_proxy or url_ip are used.
This bug was introduced in haproxy 1.5 and doesn't need to be backported.
* be warned this can slow down global daemon performances
* while handling lagging dns responses.
*/
- ret = url2ipv4(curr, &((struct sockaddr_in *)&addr)->sin_addr);
+ ret = url2ipv4(curr, &((struct sockaddr_in *)addr)->sin_addr);
if (!ret)
return -1;
curr += ret;
((struct sockaddr_in *)addr)->sin_port = (*curr == ':') ? str2uic(++curr) : 80;
- ((struct sockaddr_in *)addr)->sin_port = htons(((struct sockaddr_in *)&addr)->sin_port);
+ ((struct sockaddr_in *)addr)->sin_port = htons(((struct sockaddr_in *)addr)->sin_port);
}
return 0;
}