summaryrefslogtreecommitdiffstats
path: root/regexp/jimregexp.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2023-04-20 12:26:40 +0200
committerWerner Koch <wk@gnupg.org>2023-04-20 12:26:40 +0200
commita82e6f310a034a28c51dfdf6f21fcd5f037d33c5 (patch)
tree61788a82ccdebcd1551f264f30c3b7fc22558642 /regexp/jimregexp.c
parentgpg: New command "openpgp" for --card-edit. (diff)
downloadgnupg2-a82e6f310a034a28c51dfdf6f21fcd5f037d33c5.tar.xz
gnupg2-a82e6f310a034a28c51dfdf6f21fcd5f037d33c5.zip
common: Fix minor bug in the jimregexp code.
* regexp/jimregexp.c (regatom): Make error checking for stray backslash at end of the string work. Check that the pattern class is closed by a bracket. -- GnuPG-bug-id: 6455 Co-authored-by: Guldrelokk
Diffstat (limited to '')
-rw-r--r--regexp/jimregexp.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/regexp/jimregexp.c b/regexp/jimregexp.c
index 7fd6d473e..91be38f22 100644
--- a/regexp/jimregexp.c
+++ b/regexp/jimregexp.c
@@ -778,7 +778,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;
}
@@ -795,7 +795,8 @@ static int regatom(regex_t *preg, int *flagp)
for (cc = 0; cc < CC_NUM; cc++) {
n = strlen(character_class[cc]);
- if (strncmp(pattern, character_class[cc], n) == 0) {
+ if (!strncmp(pattern, character_class[cc], n)
+ && pattern[n] == ']') {
/* Found a character class */
pattern += n + 1;
break;