]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MAJOR: http: don't manipulate the server connection if it's killed
authorWilly Tarreau <w@1wt.eu>
Wed, 2 Sep 2015 08:40:43 +0000 (10:40 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 2 Sep 2015 08:52:05 +0000 (10:52 +0200)
Jesse Hathaway reported a crash that Cyril Bonté diagnosed as being
caused by the manipulation of srv_conn after setting it to NULL. This
happens in http-server-close mode when the server returns either a 401
or a 407, because the connection was previously closed then it's being
assigned the CO_FL_PRIVATE flag.

This bug only affects 1.6-dev as it was introduced by connection reuse code
with commit 387ebf8 ("MINOR: connection: add a new flag CO_FL_PRIVATE").

src/proto_http.c

index 0f18c009686a08aff990d9eacd8ca9f5ecaa61f7..7887791ce1361a754718f98b325a823687b8c695 100644 (file)
@@ -5246,7 +5246,8 @@ void http_end_txn_clean_session(struct stream *s)
                 * it's better to do it (at least it helps with debugging).
                 */
                s->txn->flags |= TX_PREFER_LAST;
-               srv_conn->flags |= CO_FL_PRIVATE;
+               if (srv_conn)
+                       srv_conn->flags |= CO_FL_PRIVATE;
        }
 
        if (fe->options2 & PR_O2_INDEPSTR)