[webkit-changes] [WebKit/WebKit] 51d7c7: Renderinline::offsetForInFlowPositionedInline caus...

Arunsundar Kannan noreply at github.com
Mon Jul 31 11:49:35 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 51d7c7775f9625ce5679c11768b50eea2520b905
      https://github.com/WebKit/WebKit/commit/51d7c7775f9625ce5679c11768b50eea2520b905
  Author: Arunsundar Kannan <arunsundar_kannan at apple.com>
  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 at safari-7615-branch (7c662f5b36e3). rdar://107952390
Canonical link: https://commits.webkit.org/266452@main




More information about the webkit-changes mailing list