From 0fc36e3ae99ccbe6de88cf64093f3045e526d088 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Thu, 4 Jul 2013 11:44:27 +0200 Subject: [PATCH] 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. --- src/session.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/session.c b/src/session.c index 3f117e6df..0a6b13025 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); } }