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
This commit is contained in:
Werner Koch 2023-04-20 12:26:40 +02:00
parent e1663c0450
commit a82e6f310a
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
1 changed files with 3 additions and 2 deletions

View File

@ -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;