fix: custom spell-checker stuck in infinite loop (#45022)
`ReadUnicodeCharacter` updates index to the last character read, and not after it. We need to manually increment it to move to the next character. It also doesn't validate that the index is valid, so we need to check that index is within bounds. Refs: #44336 Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Jesper Ek <deadbeef84@gmail.com>
This commit is contained in:
parent
7691f58861
commit
c200b6762b
1 changed files with 3 additions and 1 deletions
|
@ -31,7 +31,9 @@ namespace {
|
|||
|
||||
bool HasWordCharacters(const std::u16string& text, size_t index) {
|
||||
base_icu::UChar32 code;
|
||||
while (base::ReadUnicodeCharacter(text.c_str(), text.size(), &index, &code)) {
|
||||
while (index < text.size() &&
|
||||
base::ReadUnicodeCharacter(text.c_str(), text.size(), &index, &code)) {
|
||||
++index;
|
||||
UErrorCode error = U_ZERO_ERROR;
|
||||
if (uscript_getScript(code, &error) != USCRIPT_COMMON)
|
||||
return true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue