diff --git a/src/proto_http.c b/src/proto_http.c index 80ba5660b..3d8005e62 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -3419,13 +3419,22 @@ static int http_transform_header(struct stream* s, struct http_msg *msg, struct list *fmt, struct my_regex *re, int action) { - struct chunk *replace = get_trash_chunk(); + struct chunk *replace; + int ret = -1; + + replace = alloc_trash_chunk(); + if (!replace) + goto leave; replace->len = build_logline(s, replace->str, replace->size, fmt); if (replace->len >= replace->size - 1) - return -1; + goto leave; - return http_transform_header_str(s, msg, name, name_len, replace->str, re, action); + ret = http_transform_header_str(s, msg, name, name_len, replace->str, re, action); + + leave: + free_trash_chunk(replace); + return ret; } /* Executes the http-request rules for stream , proxy and