- Update haproxy download URL and hash - Add new patches - Add several CFLAGS (derived from haproxy Makefile) to make the build work with v1.9+ - Update default configuration - Add check-command (for config) to init-script - Add prometheus-service from contribs by default - Add support for uclibc to haproxy with libcrypt disabled - Minor cleanups I have been running v2.0 for some time now and it feels as stable as v1.8. v2.0 is the new LTS release. Signed-off-by: Christian Lachner <gladiac@gmail.com>
32 lines
1.4 KiB
Diff
32 lines
1.4 KiB
Diff
commit 032cff38c24d8359dc575423a94d19b6ad8bf848
|
|
Author: Christopher Faulet <cfaulet@haproxy.com>
|
|
Date: Mon Jun 17 11:44:47 2019 +0200
|
|
|
|
BUG/MEDIUM: h2/htx: Update data length of the HTX when the cookie list is built
|
|
|
|
When an H2 request is converted into an HTX message, All cookie headers are
|
|
grouped into one, each value separated by a semicolon (;). To do so, we add the
|
|
header "cookie" with the first value and then we update the value by appending
|
|
other cookies. But during this operation, only the size of the HTX block is
|
|
updated. And not the data length of the whole HTX message.
|
|
|
|
It is an old bug and it seems to work by chance till now. But it may lead to
|
|
undefined behaviour by time to time.
|
|
|
|
This patch must be backported to 2.0 and 1.9
|
|
|
|
(cherry picked from commit 0c6de00d7c842a682bba7586ef34fb10f69ec63c)
|
|
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
|
|
|
|
diff --git a/src/h2.c b/src/h2.c
|
|
index 9681aca5..32c1ef16 100644
|
|
--- a/src/h2.c
|
|
+++ b/src/h2.c
|
|
@@ -737,6 +737,7 @@ int h2_make_htx_request(struct http_hdr *list, struct htx *htx, unsigned int *ms
|
|
goto fail;
|
|
|
|
htx_set_blk_value_len(blk, tl);
|
|
+ htx->data += vl+2;
|
|
*(char *)(htx_get_blk_ptr(htx, blk) + bs + 0) = ';';
|
|
*(char *)(htx_get_blk_ptr(htx, blk) + bs + 1) = ' ';
|
|
memcpy(htx_get_blk_ptr(htx, blk) + bs + 2, list[ck].v.ptr, vl);
|