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.
This commit is contained in:
Willy Tarreau 2018-08-21 18:33:20 +02:00
parent deca26c452
commit 1b13bfd646

View File

@ -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);
}