mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-04-21 14:35:45 +00: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
@ -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 New Issue
Block a user