From a877402c0f14eb9614576cc1b3579a5ca4b683ef Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 1 Oct 2002 09:26:03 +0000 Subject: Update. 2002-10-01 Isamu Hasegawa * posix/regex_internal.c (re_string_reconstruct): Reset the member LEN and STOP. * posix/regexec.c (re_search_stub): Remove incorrect condition of "range < 0". Round RANGE in case that it is too small. --- posix/regexec.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'posix') diff --git a/posix/regexec.c b/posix/regexec.c index 8988c6633c..7e3a8320b1 100644 --- a/posix/regexec.c +++ b/posix/regexec.c @@ -357,10 +357,12 @@ re_search_stub (bufp, string, length, start, range, stop, regs, ret_len) int eflags = 0; /* Check for out-of-range. */ - if (BE (start < 0 || start > length || range < 0, 0)) + if (BE (start < 0 || start > length, 0)) return -1; if (BE (start + range > length, 0)) range = length - start; + else if (BE (start + range < 0, 0)) + range = -start; eflags |= (bufp->not_bol) ? REG_NOTBOL : 0; eflags |= (bufp->not_eol) ? REG_NOTEOL : 0; -- cgit v1.2.3