]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MAJOR: http: don't emit the send-name-header when no server is available
authorWilly Tarreau <w@1wt.eu>
Thu, 4 Jul 2013 09:44:27 +0000 (11:44 +0200)
committerWilly Tarreau <w@1wt.eu>
Thu, 4 Jul 2013 09:44:27 +0000 (11:44 +0200)
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

index 3f117e6df03e3528847f293865aef9ec1134a1a2..0a6b130252da7faff5368da330d40416b2c7629a 100644 (file)
@@ -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);
                                }
                        }