BUG/MEDIUM: pattern: Pattern node has type of "struct pat_idx_elt" in place of "struct eb_node"

The free() function must free the "struct pat_idx_elt".

This bug was introduced by commit ed66c29 (REORG: acl/pattern: extract
pattern matching from the acl file and create pattern.c), no backport
is needed.
This commit is contained in:
Thierry FOURNIER 2013-12-09 11:29:46 +01:00 committed by Willy Tarreau
parent 9667a80676
commit 3ce88c76a0

View File

@ -769,11 +769,14 @@ void free_pattern_list(struct list *head)
void free_pattern_tree(struct eb_root *root) void free_pattern_tree(struct eb_root *root)
{ {
struct eb_node *node, *next; struct eb_node *node, *next;
struct pat_idx_elt *elt;
node = eb_first(root); node = eb_first(root);
while (node) { while (node) {
next = eb_next(node); next = eb_next(node);
eb_delete(node); eb_delete(node);
free(node); elt = container_of(node, struct pat_idx_elt, node);
free(elt);
node = next; node = next;
} }
} }