BUG/MINOR: http: Memory leak of http redirect rules' format string
When the configuration contains such a line:
http-request redirect location /
a "struct logformat_node" object is created and it contains an "arg"
member which gets alloc'ed as well in which we copy the new location
(see add_to_logformat_list). This internal arg pointer was not freed in
the dedicated release_http_redir release function.
Likewise, the expression pointer was not released as well.
This patch can be backported to all stable branches. It should apply
as-is all the way to 2.2 but it won't on 2.0 because release_http_redir
did not exist yet.
diff --git a/src/http_act.c b/src/http_act.c
index 5582085..fb77f80 100644
--- a/src/http_act.c
+++ b/src/http_act.c
@@ -1769,6 +1769,8 @@
free(redir->cookie_str);
list_for_each_entry_safe(lf, lfb, &redir->rdr_fmt, list) {
LIST_DELETE(&lf->list);
+ release_sample_expr(lf->expr);
+ free(lf->arg);
free(lf);
}
free(redir);
diff --git a/src/proxy.c b/src/proxy.c
index 8bcc98c..e53cc4f 100644
--- a/src/proxy.c
+++ b/src/proxy.c
@@ -244,6 +244,8 @@
free(rdr->rdr_str);
list_for_each_entry_safe(lf, lfb, &rdr->rdr_fmt, list) {
LIST_DELETE(&lf->list);
+ release_sample_expr(lf->expr);
+ free(lf->arg);
free(lf);
}
free(rdr);