From 1b13bfd646e00ccfafd4727febb2589366733064 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Tue, 21 Aug 2018 18:33:20 +0200 Subject: [PATCH] BUG/MEDIUM: connection: don't forget to always delete the list's head During a test it happened that a connection was deleted before the stream it's attached to, resulting in a crash related to the fix 18a85fe ("BUG/MEDIUM: streams: Don't forget to remove the si from the wait list.") during the LIST_DEL(). Make sure to always delete the list's head in this case so that other elements can safely detach later. This is purely 1.9, no backport is needed. --- include/proto/connection.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/proto/connection.h b/include/proto/connection.h index 35b9dfe49..dfaaad78d 100644 --- a/include/proto/connection.h +++ b/include/proto/connection.h @@ -709,6 +709,8 @@ static inline struct conn_stream *cs_new(struct connection *conn) /* Releases a connection previously allocated by conn_new() */ static inline void conn_free(struct connection *conn) { + LIST_DEL(&conn->send_wait_list); + LIST_INIT(&conn->send_wait_list); pool_free(pool_head_connection, conn); }