Changeset 287867 in webkit
- Timestamp:
- Jan 10, 2022, 7:21:20 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 3 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/fast/block/line-layout/line-layout-collect-overflow-crash-expected.txt (added)
-
LayoutTests/fast/block/line-layout/line-layout-collect-overflow-crash.html (added)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/rendering/RenderBlockFlow.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r287866 r287867 1 2022-01-10 Alan Bujtas <zalan@apple.com> 2 3 null ptr deref in WebCore::LayoutIntegration::LineLayout::collectOverflow() 4 https://bugs.webkit.org/show_bug.cgi?id=234654 5 <rdar://problem/86571571> 6 7 Reviewed by Antti Koivisto. 8 9 * fast/block/line-layout/line-layout-collect-overflow-crash-expected.txt: Added. 10 * fast/block/line-layout/line-layout-collect-overflow-crash.html: Added. 11 1 12 2022-01-10 Wenson Hsieh <wenson_hsieh@apple.com> 2 13 -
trunk/Source/WebCore/ChangeLog
r287866 r287867 1 2022-01-10 Alan Bujtas <zalan@apple.com> 2 3 null ptr deref in WebCore::LayoutIntegration::LineLayout::collectOverflow() 4 https://bugs.webkit.org/show_bug.cgi?id=234654 5 <rdar://problem/86571571> 6 7 Reviewed by Antti Koivisto. 8 9 needsLayout() check in invalidateLineLayoutPath is insufficient for modern line layout. 10 11 m_lineLayout = std::monostate() does not only destroy the line layout object but it also nukes all the IFC geometries. 12 It is equivalent to having all the child boxes dirty, since in order to re-generate the geometry information, 13 we have to layout _all_ the boxes (note that nuking the legacy line layout object does not destroy the inline tree). 14 The bug here is that needsLayout() returns true for cases (e.g. posChildNeedsLayout) when 15 while the geometry is all gone, we are going to take a special layout codepath which expects pre-computed geometries. 16 17 Test: fast/block/line-layout/line-layout-collect-overflow-crash.html 18 19 * rendering/RenderBlockFlow.cpp: 20 (WebCore::RenderBlockFlow::invalidateLineLayoutPath): 21 1 22 2022-01-10 Wenson Hsieh <wenson_hsieh@apple.com> 2 23 -
trunk/Source/WebCore/rendering/RenderBlockFlow.cpp
r287771 r287867 3563 3563 m_lineLayout = std::monostate(); 3564 3564 setLineLayoutPath(path); 3565 if ( needsLayout())3565 if (selfNeedsLayout() || normalChildNeedsLayout()) 3566 3566 return; 3567 3567 // FIXME: We should just kick off a subtree layout here (if needed at all) see webkit.org/b/172947.
Note:
See TracChangeset
for help on using the changeset viewer.