]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: h2: Don't forget to set recv_wait_list to NULL in h2_detach.
authorOlivier Houchard <ohouchard@haproxy.com>
Wed, 12 Sep 2018 15:56:08 +0000 (17:56 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 12 Sep 2018 16:55:25 +0000 (18:55 +0200)
If we're detaching the conn_stream, and it was subscribed to be waken up
when more data was available to receive, unsubscribe it.

No backport is needed.

src/mux_h2.c

index 4a2d864e4ee9e2c8016427bb80d052ccc61736fc..53364356b665daf9c51cb07e1f7125b5f6be50bf 100644 (file)
@@ -2606,6 +2606,9 @@ static void h2_detach(struct conn_stream *cs)
                return;
 
        h2c = h2s->h2c;
+       /* If the stream we're detaching waited for more data, unsubscribe it now */
+       if (h2s->recv_wait_list && !((long)h2s->recv_wait_list->handle & 3))
+               h2s->recv_wait_list = NULL;
        h2s->cs = NULL;
        h2c->nb_cs--;
        if (h2c->flags & H2_CF_DEM_TOOMANY &&