]> git.99rst.org Git - openwrt-packages.git/blob
d23f66fc3005ff617bee5bf89a79df052430d956
[openwrt-packages.git] /
1 commit 4fb65f421b4d650711e5d8b9dbcbf4bf589d26cc
2 Author: Christopher Faulet <cfaulet@haproxy.com>
3 Date: Wed Jun 19 09:25:58 2019 +0200
4
5 BUG/MEDIUM: mux-h2: Remove the padding length when a DATA frame size is checked
6
7 When a DATA frame is processed for a message with a content-length, we first
8 take care to not have a frame size that exceeds the remaining to
9 read. Otherwise, an error is triggered. But we must remove the padding length
10 from the frame size because the padding is not included in the announced
11 content-length.
12
13 This patch must be backported to 2.0 and 1.9.
14
15 (cherry picked from commit 4f09ec812adbd9336cddc054660a7fb5cd54b459)
16 Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
17
18 diff --git a/src/mux_h2.c b/src/mux_h2.c
19 index c06d5d68..5bb85181 100644
20 --- a/src/mux_h2.c
21 +++ b/src/mux_h2.c
22 @@ -2177,7 +2177,7 @@ static int h2c_frt_handle_data(struct h2c *h2c, struct h2s *h2s)
23 goto strm_err;
24 }
25
26 - if ((h2s->flags & H2_SF_DATA_CLEN) && h2c->dfl > h2s->body_len) {
27 + if ((h2s->flags & H2_SF_DATA_CLEN) && (h2c->dfl - h2c->dpl) > h2s->body_len) {
28 /* RFC7540#8.1.2 */
29 error = H2_ERR_PROTOCOL_ERROR;
30 goto strm_err;
git clone https://git.99rst.org/PROJECT