Closed Bug 429969 Opened 17 years ago Closed 16 years ago

Crash [@ IsPercentageAware] with :first-letter, rtl

Categories

(Core :: Layout, defect)

x86
macOS
defect
Not set
critical

Tracking

()

VERIFIED FIXED

People

(Reporter: jruderman, Assigned: roc)

References

Details

(Keywords: crash, testcase, verified1.9.0.11, Whiteboard: [sg:critical] Fixed by bug 429968, post 1.8-branch)

Crash Data

Attachments

(1 file)

Loading the testcase triggers: ###!!! ASSERTION: unexpected flow: 'mFrames.ContainsFrame(nextInFlow)', file /Users/jruderman/trunk/mozilla/layout/generic/nsInlineFrame.cpp, line 469 ###!!! ASSERTION: StealFrame failure: 'NS_SUCCEEDED(rv)', file /Users/jruderman/trunk/mozilla/layout/generic/nsContainerFrame.cpp, line 1116 Crash [@ IsPercentageAware]. Security-sensitive because the testcase is very similar to the testcase for bug 429968.
This is the same issue as bug 429968, I think. We're violating assumptions that inline frames make in initial reflow, and that causes bad things to happen.
Blocks: 429968
Whiteboard: [sg:investigate]
Now I only get ###!!! ASSERTION: unexpected flow: 'mFrames.ContainsFrame(nextInFlow)', file /Users/jruderman/central/layout/generic/nsInlineFrame.cpp, line 467 and no crash.
This is definitely exploitable-looking on the 1.9.0 branch. If it's not crashing on mozilla-central (comment 2) maybe we can backport the fix. (43c.afc): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=035ae74c ebx=035aef14 ecx=035aef14 edx=0012dcbc esi=03236a94 edi=0012dcbc eip=035ae860 esp=0012d86c ebp=0012d890 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010216 035ae860 74b2 je 035ae814 [br=0] *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Program Files\Mozilla Firefox 3.0\xul.dll - 0:000> !exploitable -v HostMachine\HostUser Executing Processor Architecture is x86 Debuggee is in User Mode Debuggee is a live user mode debugging session on the local machine Event Type: Exception Exception Faulting Address: 0x35ae860 First Chance Exception Type: STATUS_ACCESS_VIOLATION (0xC0000005) Exception Sub-Type: Data Execution Protection (DEP) Violation Exception Hash (Major/Minor): 0x327f0d69.0x5b522b03 Stack Trace: Unknown xul!gfxWindowsPlatform::InitBadUnderlineList+0x1379 xul!gfxTextRun::SetSpaceGlyph+0x22d2 xul!gfxWindowsNativeDrawing::PaintToContext+0x2b24c xul!gfxWindowsNativeDrawing::PaintToContext+0x2b53d xul!gfxWindowsNativeDrawing::PaintToContext+0x2b7ff xul!gfxTextRun::SetSpaceGlyph+0x246e xul!gfxWindowsPlatform::InitBadUnderlineList+0x4cf4 xul!NS_UTF16ToCString_P+0x3cbe xul!NS_StringCopy_P+0x6293 xul!gfxPlatform::IsCMSEnabled+0x55fc xul!gfxPlatform::IsCMSEnabled+0x534c xul!gfxPlatform::IsCMSEnabled+0x12fe1 xul!gfxPlatform::IsCMSEnabled+0x13022 xul!gfxWindowsFontGroup::GetFontAt+0x7a22 xul!gfxWindowsPlatform::InitBadUnderlineList+0x49bc xul!gfxPlatform::IsCMSEnabled+0x5ad2 xul!gfxPlatform::IsCMSEnabled+0x5669 xul!gfxPlatform::IsCMSEnabled+0x534c xul!gfxPlatform::IsCMSEnabled+0x12fe1 xul!gfxPlatform::IsCMSEnabled+0x13022 xul!gfxWindowsFontGroup::GetFontAt+0x7a22 xul!gfxWindowsPlatform::InitBadUnderlineList+0x49bc xul!gfxPlatform::IsCMSEnabled+0x5ad2 xul!gfxPlatform::IsCMSEnabled+0x5669 xul!gfxPlatform::IsCMSEnabled+0x534c xul!gfxPlatform::IsCMSEnabled+0x12fe1 xul!gfxPlatform::IsCMSEnabled+0x13022 xul!gfxWindowsFontGroup::GetFontAt+0x7a22 xul!gfxWindowsPlatform::InitBadUnderlineList+0x49bc xul!gfxPlatform::IsCMSEnabled+0x5ad2 xul!gfxPlatform::IsCMSEnabled+0x5669 xul!gfxPlatform::IsCMSEnabled+0x534c xul!gfxPlatform::IsCMSEnabled+0x12fe1 xul!gfxPlatform::IsCMSEnabled+0x13022 xul!gfxWindowsFontGroup::GetFontAt+0x7a22 xul!gfxWindowsFontGroup::GetFontAt+0x96c6 xul!gfxPlatform::IsCMSEnabled+0x1127 xul!gfxWindowsFontGroup::GetFontAt+0x96c6 xul!gfxWindowsPlatform::ResolveFontName+0x7f4a xul!gfxPlatform::IsCMSEnabled+0xe570 xul!gfxTextRun::GetAdvanceWidth+0x29b7 xul!gfxWindowsFontGroup::GetFontAt+0x96c6 xul!gfxWindowsFontGroup::GetFontAt+0x981c xul!gfxWindowsFontGroup::GetFontAt+0x935 xul!gfxASurface::AddRef+0x293c xul!gfxWindowsPlatform::UpdateFontList+0x3fcb xul!NS_CycleCollectorForget_P+0x140db xul!NS_NewLocalFile_P+0x17458 xul!NS_CycleCollectorForget_P+0xe128 xul!gfxWindowsPlatform::FontEnumProc+0x4f7a xul!gfxFont::SanitizeMetrics+0xa0e xul!XRE_main+0xdb7 Unknown Unknown Instruction Address: 0x35ae860 Description: Data Execution Prevention Violation Short Description: DEPViolation Exploitability Classification: EXPLOITABLE Recommended Bug Title: Exploitable - Data Execution Prevention Violation starting at Unknown Symbol @ 0x23521280092e190 (Hash=0x327f0d69.0x5b522b03) User mode DEP access violations are exploitable.
Flags: wanted1.9.0.x+
Whiteboard: [sg:investigate] → [sg:critical]
(In reply to comment #3) > This is definitely exploitable-looking on the 1.9.0 branch. If it's not > crashing on mozilla-central (comment 2) maybe we can backport the fix. Nominating blocking1.9.0.10? due to comment #3.
Flags: blocking1.9.0.10?
qawanted: if this is truly fixed by bug 429969 this should be fixed on trunk and 1.9.1 -- can we get that verified please?
No longer blocks: 429968
Depends on: 429968
Flags: blocking1.9.0.10? → blocking1.9.0.10+
Keywords: qawanted
Whiteboard: [sg:critical] → [sg:critical] Fixed by bug 429968
(In reply to comment #5) > qawanted: if this is truly fixed by bug 429969 this should be fixed on trunk > and 1.9.1 -- can we get that verified please? It doesn't crash on mac or windows with either builds, but running in debug I am seeing an assertion on both 1.9.1 and 1.9.2. However, on 1.9.1 the assertion is accompainied by a SQLLite warning, which I find odd. Everytime I reload the test on 1.9.1 I get the SQLLite warning. Here is what I get on 1.9.1 (Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b4pre) Gecko/20090417 Shiretoko/3.5b4pre): WARNING: 1 sort operation has occurred for the SQL statement 'SELECT b.id FROM moz_bookmarks b JOIN ( SELECT id FROM moz_places_temp WHERE url = ?1 UNION ALL SELECT id FROM moz_places WHERE url = ?1 AND +id NOT IN (SELECT id FROM moz_places_temp) ) AS h ON b.fk = h.id WHERE b.type = ?2 ORDER BY MAX(IFNULL(b.lastModified, 0), b.dateAdded) DESC, b.id DESC'. This may indicate an opportunity to improve performance through the careful use of indexes.: file /Users/clint/code/moz1.9.1/src/storage/src/mozStoragePrivateHelpers.cpp, line 105 ###!!! ASSERTION: unexpected flow: 'mFrames.ContainsFrame(nextInFlow)', file /Users/clint/code/moz1.9.1/src/layout/generic/nsInlineFrame.cpp, line 472 And on 1.9.2 (Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2a1pre) Gecko/20090417 Minefield/3.6a1pre) I don't get the SQL lite warning: ###!!! ASSERTION: unexpected flow: 'mFrames.ContainsFrame(nextInFlow)', file /Users/clint/code/mozcentral/src/layout/generic/nsInlineFrame.cpp, line 460 Hopefully that's what you needed, if not let us know. Removing qaWanted.
Keywords: qawanted
Assignee: nobody → roc
I just filed bug 491547, which has a similar stacktrace, but seems like a regression. But perhaps still related to this?
(In reply to comment #7) > I just filed bug 491547, which has a similar stacktrace, but seems like a > regression. But perhaps still related to this? I think it's more like bug 460389
The 1.9.0 patch in bug 429968 fixes this crash on that branch. I still see the "unexpected flow" assertion, but no crash.
This crash does not happen on Firefox 2.0.0.20
Flags: wanted1.8.1.x-
Checked bug 429969, fixing this for the 1.9.0.11 release. As far as the "sg:critical" crash goes this bug is now fixed, so I think the remaining assertion can go into another bug. There was bug 402380, but that was fixed a while ago.
Status: NEW → RESOLVED
Closed: 16 years ago
Keywords: fixed1.9.0.11
Resolution: --- → FIXED
Blocks: 493402
Verified for 1.9.0.11 using testcase with Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.11pre) Gecko/2009051804 GranParadiso/3.0.11pre. Crashes in 1.9.0.10.
Verified for trunk with Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2a1pre) Gecko/20090517 Minefield/3.6a1pre.
Status: RESOLVED → VERIFIED
Depends on: 493652
Whiteboard: [sg:critical] Fixed by bug 429968 → [sg:critical] Fixed by bug 429968, post 1.8-branch
Group: core-security
Flags: in-testsuite+
Crash Signature: [@ IsPercentageAware]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: