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.
This commit is contained in:
Willy Tarreau 2020-01-10 18:20:15 +01:00
parent 989539b048
commit 70c5b0e5fd

View File

@ -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
*/