From 4c0a4067df2516ce50e12a7d3ae572275fa9fc0b Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Tue, 9 Aug 2022 17:51:00 -0700 Subject: [PATCH] Fix handling of a character class with an escaped closing bracket. --- exclude.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/exclude.c b/exclude.c index ea1aa495..e5774420 100644 --- a/exclude.c +++ b/exclude.c @@ -424,9 +424,10 @@ void add_implied_include(const char *arg, int skip_daemon_module) for (cp = arg; *cp; ) { switch (*cp) { case '\\': - if (cp[1] == ']') - cp++; /* A \] in a filter might cause a problem w/o wildcards. */ - else if (!strchr("*[?", cp[1])) { + if (cp[1] == ']') { + if (!saw_wild) + cp++; /* A \] in a non-wild filter causes a problem, so drop the \ . */ + } else if (!strchr("*[?", cp[1])) { backslash_cnt++; if (saw_wild) *p++ = '\\'; -- 2.47.2