From: Olivier Houchard Date: Mon, 25 Mar 2019 13:04:25 +0000 (+0100) Subject: BUG/MEDIUM: h2: Use the new sending_list in h2s_notify_send(). X-Git-Tag: v2.0-dev2~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fd1e96d2fb10eb7d1e11ca143ac0e7eac55c4666;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: h2: Use the new sending_list in h2s_notify_send(). In h2s_notify_send(), use the new sending_list instead of using the old way of setting hs->send_wait to NULL, failing to do so may lead to crashes. This should be backported to 1.9. --- diff --git a/src/mux_h2.c b/src/mux_h2.c index 273bb92018..f179c4a009 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -714,13 +714,12 @@ static void __maybe_unused h2s_notify_send(struct h2s *h2s) { struct wait_event *sw; - if (h2s->send_wait) { + if (h2s->send_wait && !(h2s->send_wait->events & SUB_CALL_UNSUBSCRIBE)) { sw = h2s->send_wait; sw->events &= ~SUB_RETRY_SEND; + sw->events |= SUB_CALL_UNSUBSCRIBE; + LIST_ADDQ(&h2s->h2c->sending_list, &h2s->sending_list); tasklet_wakeup(sw->task); - h2s->send_wait = NULL; - LIST_DEL(&h2s->list); - LIST_INIT(&h2s->list); } }