Bug 1681072 - Don't recurse into link if it is in more than one offset. r=MarcoZ

This is a safeguard for endless recursion in HyperTextIterator::NormalizeForward. Will catch similar corruptions found in bug 1682692.

Differential Revision: https://phabricator.services.mozilla.com/D99926
This commit is contained in:
Eitan Isaacson 2020-12-17 06:09:49 +00:00
Родитель c1dc47efa6
Коммит 4364371432
1 изменённых файлов: 7 добавлений и 0 удалений

Просмотреть файл

@ -96,6 +96,13 @@ bool HyperTextIterator::NormalizeForward() {
// If there is a link at this offset, mutate into it.
if (link && link->IsHyperText()) {
if (mCurrentStartOffset > 0 &&
mCurrentContainer->LinkIndexAtOffset(mCurrentStartOffset) ==
mCurrentContainer->LinkIndexAtOffset(mCurrentStartOffset - 1)) {
MOZ_ASSERT_UNREACHABLE("Same link for previous offset");
return false;
}
mCurrentContainer = link->AsHyperText();
if (link->IsHTMLListItem()) {
Accessible* bullet = link->AsHTMLListItem()->Bullet();