diff --git a/src/Encoding.cpp b/src/Encoding.cpp index a231106d24..bc27675f13 100644 --- a/src/Encoding.cpp +++ b/src/Encoding.cpp @@ -537,8 +537,11 @@ docstring Encodings::fromLaTeXCommand(docstring const & cmd, int cmdtype, if (j + 1 < cmdend && cmd[j + 1] == '{') { size_t k = j + 1; int count = 1; - while (k < cmdend && count && k != docstring::npos) { + while (k < cmdend && count) { k = cmd.find_first_of(from_ascii("{}"), k + 1); + // braces may not be balanced + if (k == docstring::npos) + break; if (cmd[k] == '{') ++count; else @@ -603,8 +606,11 @@ docstring Encodings::fromLaTeXCommand(docstring const & cmd, int cmdtype, k < cmdend && cmd[k] == '{') { size_t l = k; int count = 1; - while (l < cmdend && count && l != docstring::npos) { + while (l < cmdend && count) { l = cmd.find_first_of(from_ascii("{}"), l + 1); + // braces may not be balanced + if (l == docstring::npos) + break; if (cmd[l] == '{') ++count; else diff --git a/status.21x b/status.21x index 07e3e4e9c3..9f32d4f3c2 100644 --- a/status.21x +++ b/status.21x @@ -91,6 +91,8 @@ What's new - Fix crash when performing "Change Case" operation on a selection with font changes (bug 7943). +- Fix crash involving certain sorts of BibTeX files (bug 9112). + - Fix assertion when entering a path into the import dialog (bug 7437). - Fix assertion when doing advanced replace with table cells selected (bug