]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: pattern: fix memory leak in regex pattern functions
authorDragan Dosen <ddosen@haproxy.com>
Mon, 29 Apr 2019 23:03:26 +0000 (01:03 +0200)
committerWilly Tarreau <w@1wt.eu>
Thu, 2 May 2019 08:05:11 +0000 (10:05 +0200)
The allocated regex is not freed properly and can cause a memory leak,
eg. when patterns are updated via CLI socket.

This patch should be backported to all supported versions.

src/pattern.c

index acb78e38da664d17e6f251df0dfd0147dafc29ea..49d05a106b0b4a22cb3e486d36b2a4045e94b418 100644 (file)
@@ -1142,6 +1142,7 @@ void pat_prune_reg(struct pattern_expr *expr)
 
        list_for_each_entry_safe(pat, tmp, &expr->patterns, list) {
                regex_free(pat->pat.ptr.ptr);
+               free(pat->pat.ptr.ptr);
                free(pat->pat.data);
                free(pat);
        }
@@ -1561,6 +1562,7 @@ void pat_del_list_reg(struct pattern_expr *expr, struct pat_ref_elt *ref)
                /* Delete and free entry. */
                LIST_DEL(&pat->list);
                regex_free(pat->pat.ptr.ptr);
+               free(pat->pat.ptr.ptr);
                free(pat->pat.data);
                free(pat);
        }