- From 623401b983185c1e0f6507e96557de3bc46fd41b Mon Sep 17 00:00:00 2001
- From: Thierry FOURNIER <tfournier@exceliance.fr>
- Date: Fri, 6 Feb 2015 17:53:54 +0100
- Subject: [PATCH 2/2] BUG/MEDIUM: pattern: some entries are not deleted with
- case insensitive match
-
- ACL or map entries are not deleted with the command "del acl" or "del map"
- if the case insentive flag is set.
-
- This is because the the case insensitive string are stored in a list and the
- default delete function associated with string looks in a tree. I add a check
- of the case insensitive flag and execute the delete function for lists if it
- is set.
-
- This patch must be backported in 1.5 version.
- (cherry picked from commit 73bc285be194f443dc7eab9c949e87e1dbe8f70c)
- ---
- src/pattern.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
- diff --git a/src/pattern.c b/src/pattern.c
- index a6fc52d..b19ffe2 100644
- --- a/src/pattern.c
- +++ b/src/pattern.c
- @@ -1308,6 +1308,10 @@ void pat_del_tree_str(struct pattern_expr *expr, struct pat_ref_elt *ref)
- struct ebmb_node *node, *next_node;
- struct pattern_tree *elt;
-
- + /* If the flag PAT_F_IGNORE_CASE is set, we cannot use trees */
- + if (expr->mflags & PAT_MF_IGNORE_CASE)
- + return pat_del_list_ptr(expr, ref);
- +
- /* browse each node of the tree. */
- for (node = ebmb_first(&expr->pattern_tree), next_node = node ? ebmb_next(node) : NULL;
- node;
- --
- 2.0.4
-
|