|
|
- From 0dff81c6a5876172bc1d4725a7a07fddd9d1f369 Mon Sep 17 00:00:00 2001
- From: Willy Tarreau <w@1wt.eu>
- Date: Tue, 15 Jul 2014 21:34:06 +0200
- Subject: [PATCH 4/5] BUG/MINOR: http: base32+src should use the big endian
- version of base32
-
- We're using the internal memory representation of base32 here, which is
- wrong since these data might be exported to headers for logs or be used
- to stick to a server and replicated to other peers. Let's convert base32
- to big endian (network representation) when building the binary block.
-
- This mistake is also present in 1.5, it would be better to backport it.
- (cherry picked from commit 5ad6e1dc09f0a85aabf86f154b1817b9ebffb568)
- ---
- src/proto_http.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
- diff --git a/src/proto_http.c b/src/proto_http.c
- index 94afed7..b7ed85d 100644
- --- a/src/proto_http.c
- +++ b/src/proto_http.c
- @@ -10358,8 +10358,8 @@ smp_fetch_base32_src(struct proxy *px, struct session *l4, void *l7, unsigned in
- return 0;
-
- temp = get_trash_chunk();
- - memcpy(temp->str + temp->len, &smp->data.uint, sizeof(smp->data.uint));
- - temp->len += sizeof(smp->data.uint);
- + *(unsigned int *)temp->str = htonl(smp->data.uint);
- + temp->len += sizeof(unsigned int);
-
- switch (cli_conn->addr.from.ss_family) {
- case AF_INET:
- --
- 1.8.5.5
-
|