Update.
authorUlrich Drepper <drepper@redhat.com>
Tue, 1 Oct 2002 09:26:03 +0000 (09:26 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 1 Oct 2002 09:26:03 +0000 (09:26 +0000)
2002-10-01  Isamu Hasegawa  <isamu@yamato.ibm.com>

* 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.

ChangeLog
posix/regexec.c

index 42a958f..7cf8087 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2002-10-01  Isamu Hasegawa  <isamu@yamato.ibm.com>
+
+       * 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.
+
 2002-10-01  Roland McGrath  <roland@frob.com>
 
        * config.h.in (NO_HIDDEN): New #undef.
index 8988c66..7e3a832 100644 (file)
@@ -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;