mirror of
https://github.com/haproxy/haproxy.git
synced 2026-03-23 02:43:39 -04:00
BUG/MEDIUM: h2: Remove the tasklet from the task list if unsubscribing.
In h2_unsubscribe(), if we unsubscribe on SUB_CALL_UNSUBSCRIBE, then remove ourself from the sending_list, and remove the tasklet from the task list. We're probably about to destroy the stream anyway, so we don't want the tasklet to run, or to stay in the sending_list, or it could lead to a crash. This should be backpored to 1.9.
This commit is contained in:
parent
afc7cb85c4
commit
3ea3513689
1 changed files with 2 additions and 0 deletions
|
|
@ -5182,9 +5182,11 @@ static int h2_unsubscribe(struct conn_stream *cs, int event_type, void *param)
|
|||
sw = param;
|
||||
if (h2s->send_wait == sw) {
|
||||
sw->events &= ~SUB_CALL_UNSUBSCRIBE;
|
||||
task_remove_from_task_list((struct task *)h2s->send_wait->task);
|
||||
h2s->send_wait = NULL;
|
||||
LIST_DEL(&h2s->list);
|
||||
LIST_INIT(&h2s->list);
|
||||
LIST_DEL_INIT(&h2s->sending_list);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Reference in a new issue