diff options
author | Werner Koch <wk@gnupg.org> | 2023-04-20 12:26:40 +0200 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2023-04-20 12:26:40 +0200 |
commit | a82e6f310a034a28c51dfdf6f21fcd5f037d33c5 (patch) | |
tree | 61788a82ccdebcd1551f264f30c3b7fc22558642 /regexp/jimregexp.c | |
parent | gpg: New command "openpgp" for --card-edit. (diff) | |
download | gnupg2-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.c | 5 |
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; |