From: Willy Tarreau Date: Thu, 4 Jul 2013 09:44:27 +0000 (+0200) Subject: BUG/MAJOR: http: don't emit the send-name-header when no server is available X-Git-Tag: v1.5-dev20~336 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0fc36e3ae99ccbe6de88cf64093f3045e526d088;p=thirdparty%2Fhaproxy.git BUG/MAJOR: http: don't emit the send-name-header when no server is available Lukas Benes reported that http-send-name-header causes a segfault if no server is available because we're dereferencing the session's target which is NULL. The tiniest reproducer looks like this : listen foo bind :1234 mode http http-send-name-header srv This obvious fix must be backported to 1.4 which is affected as well. --- diff --git a/src/session.c b/src/session.c index 3f117e6df0..0a6b130252 100644 --- a/src/session.c +++ b/src/session.c @@ -2202,7 +2202,7 @@ struct task *process_session(struct task *t) /* check for HTTP mode and proxy server_name_hdr_name != NULL */ if ((s->flags & SN_BE_ASSIGNED) && (s->be->mode == PR_MODE_HTTP) && - (s->be->server_id_hdr_name != NULL)) { + (s->be->server_id_hdr_name != NULL && s->target)) { http_send_name_header(&s->txn, s->be, objt_server(s->target)->id); } }