Bugzilla@Mozilla – Bug 443528
"ASSERTION: running past end" with -moz-column, pre-wrap, inline-block
Last modified: 2008-11-29 19:14:42 PST
Summon comment box
Created attachment 328078 [details] testcase (may cause heap corruption) Loading the testcase triggers: ###!!! ASSERTION: Shouldn't be incomplete if availableHeight is UNCONSTRAINED.: 'aReflowState.availableHeight != NS_UNCONSTRAINEDSIZE', file mozilla/layout/generic/nsBlockFrame.cpp, line 1411 ###!!! ASSERTION: running past end: 'mCurrent != mListLink', file mozilla/layout/base/../generic/nsLineBox.h, line 611 The second assertion is usually followed by heap corruption, so I'm filing this bug as security sensitive. I have it set to abort locally.
Created attachment 342011 [details] [review] Patch rev. 1 The line that we pass to MarkLineDirty() is an overflow line so the test "mLines.front()" before using "aLine.prev()" is testing the wrong line list. That is the cause of the crash. I also think the frame could be different from 'this' so we should use GetContainer(), (or should we just assert GetContainer()==this ?).
Created attachment 342747 [details] [review] crashtest.diff
http://hg.mozilla.org/mozilla-central/rev/12083acc3286 Holding the crashtest until 1.9.0.x is released with a fix. Filed bug 459597 on the "Shouldn't be incomplete" assertion. -> FIXED
Comment on attachment 342011 [details] [review] Patch rev. 1 Approved for 1.9.0.4, a=dveditz for release-drivers
Landed on CVS trunk for 1.9.0.4: mozilla/layout/generic/nsBlockFrame.cpp 3.959 mozilla/layout/generic/nsBlockFrame.h 3.273
Tomcat, can you verify that this assertion is gone with your nightly debug 1.9.0 build?
Verified fixed using Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.4pre) Gecko/2008102800 Firefox/3.0.4pre and the Testcase from Mats. I see not the Assertion -> ASSERTION: running past end" with -moz-column..., so verified 1.9.0.4 But i still see ###!!! ASSERTION: Shouldn't be incomplete if availableHeight is UNCONSTRAINED.: 'aReflowState.availableHeight != NS_UNCONSTRAINEDSIZE', file /work/mozilla/builds/1.9.0/mozilla/layout/generic/nsBlockFrame.cpp, line 1405 - but this is covered in Bug 459597