diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-11-19 18:39:58 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-11-19 18:39:58 +0000 |
commit | bece5ca7c19138807a8ddb6d1a9c351b47fc5f99 (patch) | |
tree | 72d7b54a4c569a2f1e7d395f7450358811499030 | |
parent | 50463d27cdd5b7a8dd7401ca4850ae3871b9aa78 (diff) | |
download | glibc-bece5ca7c19138807a8ddb6d1a9c351b47fc5f99.tar.gz |
Update.
1998-11-19 Ulrich Drepper <drepper@cygnus.com>
* posix/regex.c (regex_compile): Handle extra long class names
correctly.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | posix/regex.c | 9 |
2 files changed, 11 insertions, 3 deletions
@@ -1,3 +1,8 @@ +1998-11-19 Ulrich Drepper <drepper@cygnus.com> + + * posix/regex.c (regex_compile): Handle extra long class names + correctly. + 1998-11-19 Geoff Keating <geoffk@ozemail.com.au> * elf/rtld.c (_dl_start): Handle weak undefined symbols in ld.so diff --git a/posix/regex.c b/posix/regex.c index 5f8e38c791..ba01f73508 100644 --- a/posix/regex.c +++ b/posix/regex.c @@ -2210,10 +2210,13 @@ regex_compile (pattern, size, syntax, bufp) for (;;) { PATFETCH (c); - if ((c == ':' && *p == ']') || p == pend - || c1 == CHAR_CLASS_MAX_LENGTH) + if ((c == ':' && *p == ']') || p == pend) break; - str[c1++] = c; + if (c1 < CHAR_CLASS_MAX_LENGTH) + str[c1++] = c; + else + /* This is in any case an invalid class name. */ + str[0] = '\0'; } str[c1] = '\0'; |