From fd1e96d2fb10eb7d1e11ca143ac0e7eac55c4666 Mon Sep 17 00:00:00 2001 From: Olivier Houchard Date: Mon, 25 Mar 2019 14:04:25 +0100 Subject: [PATCH] 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. --- src/mux_h2.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/mux_h2.c b/src/mux_h2.c index 273bb9201..f179c4a00 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); } }