diff options
Diffstat (limited to 'lib/regex.c')
-rw-r--r-- | lib/regex.c | 7 |
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; |