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 273bb92..f179c4a 100644
--- a/src/mux_h2.c
+++ b/src/mux_h2.c
@@ -714,13 +714,12 @@
{
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);
}
}