]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: http: url32+src should use the big endian version of url32
authorDragan Dosen <ddosen@haproxy.com>
Thu, 16 Jun 2016 09:08:08 +0000 (11:08 +0200)
committerWilly Tarreau <w@1wt.eu>
Thu, 16 Jun 2016 10:53:25 +0000 (12:53 +0200)
This is similar to the commit 5ad6e1dc ("BUG/MINOR: http: base32+src
should use the big endian version of base32"). Now we convert url32 to big
endian when building the binary block.

This patch needs to be backported to 1.6 and 1.5.

src/proto_http.c

index 3ca456e824702a4d274fffb913fe955095fc48b7..77122817fceb64a057b54a9db03a688efcef7b27 100644 (file)
@@ -11653,17 +11653,13 @@ smp_fetch_url32_src(const struct arg *args, struct sample *smp, const char *kw,
 {
        struct chunk *temp;
        struct connection *cli_conn = objt_conn(smp->sess->origin);
-       unsigned int hash;
 
        if (!smp_fetch_url32(args, smp, kw, private))
                return 0;
 
-       /* The returned hash is a 32 bytes integer. */
-       hash = smp->data.u.sint;
-
        temp = get_trash_chunk();
-       memcpy(temp->str + temp->len, &hash, sizeof(hash));
-       temp->len += sizeof(hash);
+       *(unsigned int *)temp->str = htonl(smp->data.u.sint);
+       temp->len += sizeof(unsigned int);
 
        switch (cli_conn->addr.from.ss_family) {
        case AF_INET: