]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
[BUG] capture: do not capture a cookie if there is no memory left
authorWilly Tarreau <w@1wt.eu>
Fri, 19 Nov 2010 10:27:18 +0000 (11:27 +0100)
committerWilly Tarreau <w@1wt.eu>
Fri, 19 Nov 2010 12:25:11 +0000 (13:25 +0100)
In case of out of memory, it was possible to write to a null pointer
when capturing response cookies due to a missing "else" block. The
request handling was fine though.
(cherry picked from commit 62e3604d7dd27741c0b4c9e27d9e7c73495dfc32)

src/proto_http.c

index db8676932ffd593195e351bd567d40572c91fcb3..e06a78274e6062c96b459c32344c42ccc0fd940b 100644 (file)
@@ -6766,11 +6766,12 @@ void manage_server_side_cookies(struct session *t, struct buffer *res)
                                if ((txn->srv_cookie = pool_alloc2(pool2_capture)) == NULL) {
                                        Alert("HTTP logging : out of memory.\n");
                                }
-
-                               if (log_len > t->fe->capture_len)
-                                       log_len = t->fe->capture_len;
-                               memcpy(txn->srv_cookie, att_beg, log_len);
-                               txn->srv_cookie[log_len] = 0;
+                               else {
+                                       if (log_len > t->fe->capture_len)
+                                               log_len = t->fe->capture_len;
+                                       memcpy(txn->srv_cookie, att_beg, log_len);
+                                       txn->srv_cookie[log_len] = 0;
+                               }
                        }
 
                        /* now check if we need to process it for persistence */