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.
void free_pattern_tree(struct eb_root *root)
{
struct eb_node *node, *next;
+ struct pat_idx_elt *elt;
+
node = eb_first(root);
while (node) {
next = eb_next(node);
eb_delete(node);
- free(node);
+ elt = container_of(node, struct pat_idx_elt, node);
+ free(elt);
node = next;
}
}