diff options
m--------- | gnulib | 0 | ||||
-rw-r--r-- | src/search.c | 18 |
2 files changed, 12 insertions, 6 deletions
diff --git a/gnulib b/gnulib -Subproject a3255b1b9848874572e0df9d0609e263da50de4 +Subproject 60b0c353fb7bc5f8dd35e65df983793251e9efe diff --git a/src/search.c b/src/search.c index 15516b1c..e5b667fc 100644 --- a/src/search.c +++ b/src/search.c @@ -332,8 +332,10 @@ EXECUTE_FCT(EGexecute) beg += offset; /* Narrow down to the line containing the candidate, and run it through DFA. */ - end = memchr(beg, eol, buflim - beg); - end++; + if ((end = memchr(beg, eol, buflim - beg)) != NULL) + end++; + else + end = buflim; #ifdef MBS_SUPPORT if (MB_CUR_MAX > 1 && mb_properties[beg - buf] == 0) continue; @@ -353,8 +355,10 @@ EXECUTE_FCT(EGexecute) break; /* Narrow down to the line we've found. */ beg += offset; - end = memchr (beg, eol, buflim - beg); - end++; + if ((end = memchr(beg, eol, buflim - beg)) != NULL) + end++; + else + end = buflim; while (beg > buf && beg[-1] != eol) --beg; } @@ -592,8 +596,10 @@ EXECUTE_FCT(Fexecute) goto out; success: - end = memchr (beg + len, eol, (buf + size) - (beg + len)); - end++; + if ((end = memchr (beg + len, eol, (buf + size) - (beg + len))) != NULL) + end++; + else + end = buf + size; while (buf < beg && beg[-1] != eol) --beg; len = end - beg; |