From: Willy Tarreau Date: Thu, 30 Apr 2026 14:27:36 +0000 (+0200) Subject: BUG/MINOR: pattern: release the reference on failure to load from file X-Git-Tag: v3.4-dev11~81 X-Git-Url: http://www.kaiwu.me/postgresql/commit/static/gitweb.js?a=commitdiff_plain;h=dc93168f224a3e3db11da4f708c2e3b515d5b5a6;p=haproxy.git BUG/MINOR: pattern: release the reference on failure to load from file In pattern_read_from_file(), in case of failure to load from the file, the newly allocated reference remains attached to the list and is never freed. Let's just do it. This can be backported to all versions since it arrived in 1.5 with commit 1e00d3853b ("MAJOR: pattern/map: Extends the map edition system in the patterns"). --- diff --git a/src/pattern.c b/src/pattern.c index 41f834582..17322e3a3 100644 --- a/src/pattern.c +++ b/src/pattern.c @@ -2590,12 +2590,18 @@ int pattern_read_from_file(struct pattern_head *head, unsigned int refflags, if (ref->flags & PAT_REF_FILE) { if (load_smp) { ref->flags |= PAT_REF_SMP; - if (!pat_ref_read_from_file_smp(ref, err)) + if (!pat_ref_read_from_file_smp(ref, err)) { + LIST_DELETE(&ref->list); + pat_ref_free(ref); return 0; + } } else { - if (!pat_ref_read_from_file(ref, err)) + if (!pat_ref_read_from_file(ref, err)) { + LIST_DELETE(&ref->list); + pat_ref_free(ref); return 0; + } } } else if ((ref->flags & PAT_REF_ID) && load_smp)