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.
/* 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);
}