summaryrefslogtreecommitdiff
path: root/lib/regex.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/regex.c')
-rw-r--r--lib/regex.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/regex.c b/lib/regex.c
index ca485a896..348bd3649 100644
--- a/lib/regex.c
+++ b/lib/regex.c
@@ -3265,9 +3265,10 @@ re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
return -1;
/* Fix up RANGE if it might eventually take us outside
- the virtual concatenation of STRING1 and STRING2. */
- if (endpos < -1)
- range = -1 - startpos;
+ the virtual concatenation of STRING1 and STRING2.
+ Make sure we won't move STARTPOS below 0 or above TOTAL_SIZE. */
+ if (endpos < 0)
+ range = 0 - startpos;
else if (endpos > total_size)
range = total_size - startpos;