⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 274064 in webkit


Ignore:
Timestamp:
Mar 8, 2021, 12:59:22 AM (5 years ago)
Author:
commit-queue@webkit.org
Message:

REGRESSION(r272900): Nullptr crash in ComposedTreeIterator::traverseNextInShadowTree() via ShadowRoot::hostChildElementDidChange
https://bugs.webkit.org/show_bug.cgi?id=222720

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-03-08
Reviewed by Ryosuke Niwa.

Source/WebCore:

The list of assigned nodes contains weak pointers, we should check the node hasn't been destroyed.

Test: fast/html/details-set-inner-text-crash.html

  • dom/ComposedTreeIterator.cpp:

(WebCore::ComposedTreeIterator::traverseNextInShadowTree):

LayoutTests:

  • fast/html/details-set-inner-text-crash-expected.txt: Added.
  • fast/html/details-set-inner-text-crash.html: Added.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r274062 r274064  
     12021-03-08  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        REGRESSION(r272900): Nullptr crash in ComposedTreeIterator::traverseNextInShadowTree() via ShadowRoot::hostChildElementDidChange
     4        https://bugs.webkit.org/show_bug.cgi?id=222720
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        * fast/html/details-set-inner-text-crash-expected.txt: Added.
     9        * fast/html/details-set-inner-text-crash.html: Added.
     10
    1112021-03-08  Diego Pino Garcia  <dpino@igalia.com>
    212
  • trunk/Source/WebCore/ChangeLog

    r274060 r274064  
     12021-03-08  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        REGRESSION(r272900): Nullptr crash in ComposedTreeIterator::traverseNextInShadowTree() via ShadowRoot::hostChildElementDidChange
     4        https://bugs.webkit.org/show_bug.cgi?id=222720
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        The list of assigned nodes contains weak pointers, we should check the node hasn't been destroyed.
     9
     10        Test: fast/html/details-set-inner-text-crash.html
     11
     12        * dom/ComposedTreeIterator.cpp:
     13        (WebCore::ComposedTreeIterator::traverseNextInShadowTree):
     14
    1152021-03-07  Lauro Moura  <lmoura@igalia.com>
    216
  • trunk/Source/WebCore/dom/ComposedTreeIterator.cpp

    r266212 r274064  
    163163        auto& slot = downcast<HTMLSlotElement>(current());
    164164        if (auto* assignedNodes = slot.assignedNodes()) {
    165             context().slotNodeIndex = 0;
    166             auto* assignedNode = assignedNodes->at(0).get();
    167             m_contextStack.append(Context(*assignedNode->parentElement(), *assignedNode, Context::Slotted));
    168             return;
     165            if (auto assignedNode = assignedNodes->at(0)) {
     166                context().slotNodeIndex = 0;
     167                m_contextStack.append(Context(*assignedNode->parentElement(), *assignedNode, Context::Slotted));
     168                return;
     169            }
    169170        }
    170171    }
Note: See TracChangeset for help on using the changeset viewer.