From 70c5b0e5fd5ad243f4645b37a0f89068de97e90e Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Fri, 10 Jan 2020 18:20:15 +0100 Subject: [PATCH] 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. --- src/mux_h2.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/mux_h2.c b/src/mux_h2.c index c4572d553..abc7e7c55 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 */