DescriptionDon't check for layout in a canvas if it it's already needed
In this clusterfuzz test case a float is deleted but its entry in the floating
objects list of a sibling renderer is accessed before layout has had time to
remove reference to it. The read attempt pre-empts layout because the change in
zoom factor prompts the canvas renderer to recompute its width/height to check
if layout is required. If layout is already required this isn't necessary and,
what's more, if layout is already required it may be because renderer(s) in its
floating object list have been deleted and aren't safe to access while computing
offset as part of the width calculations.
So return early when the check for layout is unnecessary and may even crash.
BUG=445285
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=187935
Patch Set 1 #Patch Set 2 : Updated #
Total comments: 3
Patch Set 3 : Updated #
Messages
Total messages: 11 (4 generated)
|