Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 51d7c7775f9625ce5679c11768b50eea2520b905
      
https://github.com/WebKit/WebKit/commit/51d7c7775f9625ce5679c11768b50eea2520b905
  Author: Arunsundar Kannan <[email protected]>
  Date:   2023-07-31 (Mon, 31 Jul 2023)

  Changed paths:
    A LayoutTests/fast/inline/layoutBox-null-deref-crash-on-repaint-expected.txt
    A LayoutTests/fast/inline/layoutBox-null-deref-crash-on-repaint.html
    M Source/WebCore/rendering/RenderInline.cpp

  Log Message:
  -----------
  Renderinline::offsetForInFlowPositionedInline causes a null-deref of a laybox 
on repaint.
https://bugs.webkit.org/show_bug.cgi?id=255552.
rdar://107952390.

Reviewed by Alan Baradlay.

Line layout codepath invalidation is triggered by JS which issues a repaint on 
the newly inserted renderer. The newly inserted renderer is used for geometry 
computations and which calls offsetForInFlowPositionedInline in case of inline 
boxes. This tries to access the lineBoxes assocaited with the renderers but 
they invalidated by previous repaints. This leads to null deref of the 
lineboxes.

* LayoutTests/fast/inline/layoutBox-null-deref-crash-on-repaint-expected.txt: 
Added.
* LayoutTests/fast/inline/layoutBox-null-deref-crash-on-repaint.html: Added.
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::isLineLayoutPresent const):
* Source/WebCore/rendering/RenderBlockFlow.h:
* Source/WebCore/rendering/RenderInline.cpp:
(WebCore::RenderInline::offsetForInFlowPositionedInline const):

Originally-landed-as: 259548.678@safari-7615-branch (7c662f5b36e3). 
rdar://107952390
Canonical link: https://commits.webkit.org/266452@main


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to