Fix double-free.

Obtained from:	upstream
This commit is contained in:
Dmitry Sivachenko 2013-12-16 11:07:04 +00:00
parent a295452cfa
commit a6c2bebd1f
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=336619

View file

@ -0,0 +1,33 @@
From 6762a3061ac0d1d8c8860a2191c602a3c526205c Mon Sep 17 00:00:00 2001
From: Willy Tarreau <w@1wt.eu>
Date: Mon, 16 Dec 2013 10:40:28 +0100
Subject: BUG/MAJOR: patterns: fix double free caused by loading strings from
files
A null pointer assignment was missing after a free in commit 7148ce6 (MEDIUM:
pattern: Extract the index process from the pat_parse_*() functions), causing
a double free after loading a file of string patterns.
This bug was introduced in 1.5-dev20, no backport is needed.
Thanks to Sander Klein for reporting this bug and providing the config
needed to trigger it.
---
src/pattern.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/pattern.c b/src/pattern.c
index ce60f76..8380c63 100644
--- src/pattern.c
+++ src/pattern.c
@@ -882,6 +882,7 @@ int pattern_register(struct pattern_expr *expr, const char **args,
/* the "map_parser_str()" function always duplicate string information */
free((*pattern)->ptr.str);
+ (*pattern)->ptr.str = NULL;
/* we pre-set the data pointer to the tree's head so that functions
* which are able to insert in a tree know where to do that.
--
1.7.12.2.21.g234cd45.dirty