From fcbb4499a6b46ef69e7a95da53e30796e20817f0 Mon Sep 17 00:00:00 2001 From: Steve Bennett Date: Wed, 19 Apr 2023 14:51:26 +1000 Subject: regexp: fix incorrect check for invalid escape sequence at end of charset Fixes #259 Signed-off-by: Steve Bennett --- jimregexp.c | 2 +- tests/regexp.test | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/jimregexp.c b/jimregexp.c index 0b6ccf6..136b0c0 100644 --- a/jimregexp.c +++ b/jimregexp.c @@ -774,7 +774,7 @@ static int regatom(regex_t *preg, int *flagp) preg->err = REG_ERR_NULL_CHAR; return 0; } - if (start == '\\' && *pattern == 0) { + if (end == '\\' && *pattern == 0) { preg->err = REG_ERR_INVALID_ESCAPE; return 0; } diff --git a/tests/regexp.test b/tests/regexp.test index 2c91ac7..9793038 100644 --- a/tests/regexp.test +++ b/tests/regexp.test @@ -758,4 +758,8 @@ test reg-31.2 {invalid digit check in class} -body { regexp {[[:digit:\0]} 1 } -returnCodes error -result {couldn't compile regular expression pattern: brackets [] not balanced} +test reg-31.3 {invalid trailing backslash} -body { + regexp "\[abc\\" a +} -returnCodes error -result {couldn't compile regular expression pattern: invalid escape \ sequence} + testreport -- cgit v1.1