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;

Reply via email to