From: Willy Tarreau Date: Fri, 10 Jan 2020 17:20:15 +0000 (+0100) Subject: BUG/MEDIUM: mux-h2: fix missing test on sending_list in previous patch X-Git-Tag: v2.2-dev1~119 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=70c5b0e5fd5ad243f4645b37a0f89068de97e90e;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: mux-h2: fix missing test on sending_list in previous patch Previous commit 989539b048 ("BUG/MINOR: mux-h2: use a safe list_for_each_entry in h2_send()") accidently lost its sending_list test, resulting in some elements to be woken up again while already in the sending_list and h2_unsubscribe() crashing on integrity tests (only when built with DEBUG_DEV). If the fix above is backported this one must be as well. --- diff --git a/src/mux_h2.c b/src/mux_h2.c index c4572d553c..abc7e7c559 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -3262,6 +3262,10 @@ static void h2_resume_each_sending_h2s(struct h2c *h2c, struct list *head) break; h2s->flags &= ~H2_SF_BLK_ANY; + + if (LIST_ADDED(&h2s->sending_list)) + continue; + /* For some reason, the upper layer failed to subscribe again, * so remove it from the send_list */