diff options
author | 2009-08-23 15:22:00 -0700 | |
---|---|---|
committer | 2009-09-18 17:41:02 +0200 | |
commit | 03cb6a1e3939a039bcd53bf862fa93f487e35488 (patch) | |
tree | b5817b9f56f7828968f16b3c9fb61c770a9c012e | |
parent | Also correct _POSIX2_* constants in case older standards are selected. (diff) | |
download | glibc-03cb6a1e3939a039bcd53bf862fa93f487e35488.tar.xz glibc-03cb6a1e3939a039bcd53bf862fa93f487e35488.zip |
Recognize ill-formed { } expressions in regcomp.
(cherry picked from commit 52db8039f54672abe6a6da5fb107fa52aca42547)
Diffstat (limited to '')
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | posix/regcomp.c | 2 |
2 files changed, 4 insertions, 1 deletions
@@ -1,5 +1,8 @@ 2009-08-23 Ulrich Drepper <drepper@redhat.com> + * posix/regcomp.c (parse_dup_op): Verify the expression is correctly + terminated. + * posix/unistd.h: Define _POSIX_VERSION and _POSIX2_* correctly if older POSIX versions are selected. diff --git a/posix/regcomp.c b/posix/regcomp.c index 4843cfea33..446fed5445 100644 --- a/posix/regcomp.c +++ b/posix/regcomp.c @@ -2481,7 +2481,7 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, return elem; } - if (BE (end != -1 && start > end, 0)) + if (BE ((end != -1 && start > end) || token->type != OP_CLOSE_DUP_NUM, 0)) { /* First number greater than second. */ *err = REG_BADBR; |