[BUG] segfault on some erroneous configurations

If captures were configured in a TCP-only listener, and
the logs were enabled, the proxy could segfault when
trying to scan the capture buffer which was NULL. Such
an erroneous configuration will not be possible anymore
soon, but let's avoid the problem for now by detecting
the NULL condition.
This commit is contained in:
Willy Tarreau 2007-02-01 23:15:45 +01:00
parent 9cabf70db7
commit 4266a36c5a

View File

@ -349,7 +349,9 @@ void sess_log(struct session *s)
h = tmpline;
/* right now, header capture is limited to the frontend only */
if (fe->to_log & LW_REQHDR && (h < tmpline + sizeof(tmpline) - 10)) {
if (fe->to_log & LW_REQHDR &&
hreq->req.cap &&
(h < tmpline + sizeof(tmpline) - 10)) {
*(h++) = ' ';
*(h++) = '{';
for (hdr = 0; hdr < fe->nb_req_cap; hdr++) {
@ -362,7 +364,9 @@ void sess_log(struct session *s)
*(h++) = '}';
}
if (fe->to_log & LW_RSPHDR && (h < tmpline + sizeof(tmpline) - 7)) {
if (fe->to_log & LW_RSPHDR &&
hreq->rsp.cap &&
(h < tmpline + sizeof(tmpline) - 7)) {
*(h++) = ' ';
*(h++) = '{';
for (hdr = 0; hdr < fe->nb_rsp_cap; hdr++) {