]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
[BUG] http: redirects were broken by chunk changes
authorWilly Tarreau <w@1wt.eu>
Sun, 3 Jan 2010 11:24:37 +0000 (12:24 +0100)
committerWilly Tarreau <w@1wt.eu>
Sun, 3 Jan 2010 11:24:37 +0000 (12:24 +0100)
Redirects used to initialize a chunk whose size was not set (0).
Also, the return code of chunk_strcpy() is 1 in case of success.

src/proto_http.c

index 5cc0f23e02cd653fc613611f3648f8def2a31448..e1c4414b028a384928d67bdf2f66fa77e5abc989 100644 (file)
@@ -2702,7 +2702,7 @@ int http_process_req_common(struct session *s, struct buffer *req, int an_bit, s
                        ret = !ret;
 
                if (ret) {
-                       struct chunk rdr = { trash, 0 };
+                       struct chunk rdr = { .str = trash, .size = sizeof(trash), .len = 0 };
                        const char *msg_fmt;
 
                        /* build redirect message */
@@ -2719,7 +2719,7 @@ int http_process_req_common(struct session *s, struct buffer *req, int an_bit, s
                                break;
                        }
 
-                       if (unlikely(chunk_strcpy(&rdr, msg_fmt)))
+                       if (unlikely(!chunk_strcpy(&rdr, msg_fmt)))
                                goto return_bad_req;
 
                        switch(rule->type) {