commit 8549fbb3262443c832e3a8ec4f6fd00734d6f4f5
Author: Kornel Benko <[email protected]>
Date: Mon Nov 26 12:37:18 2018 +0100
FindAdv: Avoid crash finding char at end of inset
Testcase without this patch:
1.) open de/Additional.lyx
2.) goto 6.1 Astronomy & Astrophysics
3.) open the index
4.) find advaced
a.) not ignoring format
b.) regex = .+
c.) language of regex: English
4.) search next
The seach finds the next break (which is outside of the index)
The following try to display the selection leads to crash
---
src/lyxfind.cpp | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index 0bd647f..35be0d0 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -2656,9 +2656,9 @@ int findAdvFinalize(DocIterator & cur, MatchStringAdv
const & match)
// Compute the match length
int len = 1;
+ if (cur.pos() + len > cur.lastpos())
+ return 0;
if (match.opt.matchword) {
- if (cur.pos() + len > cur.lastpos())
- return 0;
LYXERR(Debug::FIND, "verifying unmatch with len = " << len);
while (cur.pos() + len <= cur.lastpos() && match(cur, len) <= 0) {
++len;