Closed Bug 397844 Opened 17 years ago Closed 17 years ago

Assertions / crash [@ nsFrameList::InsertFrame] with rtl, :first-letter, wrapping, padding

Categories

(Core :: Layout, defect)

x86
All
defect
Not set
critical

Tracking

()

RESOLVED FIXED

People

(Reporter: jruderman, Assigned: dholbert)

References

Details

(5 keywords, Whiteboard: [dbaron-1.9:Rs])

Crash Data

Attachments

(4 files, 1 obsolete file)

Loading testcase 1 triggers three assertions, and a crash.

###!!! ASSERTION: child list is not empty for initial reflow: 'mFrames.IsEmpty()', file /Users/jruderman/trunk/mozilla/layout/generic/nsInlineFrame.cpp, line 318

###!!! ASSERTION: unexpected flow: 'mFrames.ContainsFrame(nextInFlow)', file /Users/jruderman/trunk/mozilla/layout/generic/nsInlineFrame.cpp, line 462

###!!! ASSERTION: StealFrame failure: 'NS_SUCCEEDED(rv)', file /Users/jruderman/trunk/mozilla/layout/generic/nsContainerFrame.cpp, line 1026

The crash appears to be a null dereference [@ nsFrameList::InsertFrame].

This is similar to bug 389630, which is fixed.  That bug had some of the same assertions, a somewhat similar stack trace for the crash, and a testcase using most of the same features.

Filing as security-sensitive for reasons that I'll make clearer in a few minutes.
Flags: blocking1.9?
Attached file testcase 2
When this testcase is reloaded, it triggers:

###!!! ASSERTION: Some objects allocated with AllocateFrame were not freed: 'mFrameCount == 0', file /Users/jruderman/trunk/mozilla/layout/base/nsPresShell.cpp, line 673
Security-sensitive for general scariness (similar to a bug with an sg:critical crash, triggers the FrameArena assertion).  I haven't seen any direct evidence that this bug can lead to scary crashes.
Blocks: framedest
Summary: Assertions / crash [@ nsFrameList::InsertFrame] → Assertions / crash [@ nsFrameList::InsertFrame] with rtl, :first-letter, wrapping, padding
Attached file reftest: testcase
The incorrect-layout issue is much easier to trigger than the assertions and crash.
Attached file reftest: reference
Keywords: mlk
Flags: blocking1.9? → blocking1.9+
Severity: normal → critical
Testcase #1 and #2 work fine for me under Linux w/ a current trunk build.  (I don't get the crash / assertions mentioned in Comment 1 and Comment 2)

However, the reftest still doesn't match -- "bc" is wrapped to its own line.
(In reply to comment #5)
Despite working on Linux, testcase #1 and #2 are still broken on current Mac trunk builds.

So, those testcases are Mac-specific.  The posted reftest is broken on all platforms, though.
Depends on: 399384
Let's see if switching to a monospace font and |ch| units makes the testcase cross-platform.  On Mac, this has the same effect as testcase 1.
Attachment #282632 - Attachment is obsolete: true
The (approved) patch posted for Bug 399384 fixes this bug.  Just waiting for the tree to re-open....
Assignee: nobody → dholbert
OS: Mac OS X → All
Status: NEW → ASSIGNED
Fixed by checkin for bug 399384.
Status: ASSIGNED → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Flags: in-testsuite?
These testcases don't seem to cause any real problems on the 1.8 branch.
Group: security
Flags: wanted1.8.1.x-
I checked in "testcase 2" and "testcase 3" as crashtests.  I also checked in the reftest.
Flags: in-testsuite? → in-testsuite+
Mass-assigning the new rtl keyword to RTL-related (see bug 349193).
Keywords: rtl
Crash Signature: [@ nsFrameList::InsertFrame]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: