Closed Bug 316608 Opened 19 years ago Closed 9 years ago

Crash [@ nsIFrame::GetStyleData() line 607] (called by CalculateHypotheticalBox) involving XUL menus

Categories

(Core :: Layout: Positioned, defect)

x86
Windows XP
defect
Not set
critical

Tracking

()

RESOLVED INCOMPLETE

People

(Reporter: bc, Assigned: dbaron)

References

Details

(Keywords: crash, Whiteboard: [sg:dos] null dereference)

Crash Data

Automated RandomStyles testing on WiNXP with today's FF trunk: http://php5.akbkhome.com:81/svn.php seed=140;skip=255;changesPerInterval=144;interval=246; nsIFrame::GetStyleData(nsStyleStructID eStyleStruct_Visibility) line 607 + 3 bytes nsIFrame::GetStyleVisibility() line 98 + 17 bytes nsHTMLReflowState::CalculateHypotheticalBox(nsPresContext * 0x030da0b8, nsIFrame * 0x0446ebd4, nsIFrame * 0x00000000, nsMargin & {...}, const nsHTMLReflowState * 0x0012e4a0, nsHypotheticalBox & {...}) line 893 + 8 bytes nsHTMLReflowState::InitAbsoluteConstraints(nsPresContext * 0x030da0b8, const nsHTMLReflowState * 0x0012e4a0, int 0x00004b00, int 0x00003237) line 1066 nsHTMLReflowState::InitConstraints(nsPresContext * 0x030da0b8, int 0x00004b00, int 0x00003237, nsMargin * 0x00000000, nsMargin * 0x00000000) line 1965 nsHTMLReflowState::Init(nsPresContext * 0x030da0b8, int 0xffffffff, int 0xffffffff, nsMargin * 0x00000000, nsMargin * 0x00000000) line 343 nsHTMLReflowState::nsHTMLReflowState(nsPresContext * 0x030da0b8, const nsHTMLReflowState & {...}, nsIFrame * 0x04670550, const nsSize & {...}, nsReflowReason eReflowReason_Resize, int 0x00000001) line 217 nsFrame::BoxReflow(nsBoxLayoutState & {...}, nsPresContext * 0x030da0b8, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000, int 0x00000000, int 0x00000000, int 0x00000000, int 0x00000000, int 0x00000001) line 5233 nsFrame::RefreshSizeCache(nsFrame * const 0x04670550, nsBoxLayoutState & {...}) line 4812 + 70 bytes nsFrame::GetAscent(nsFrame * const 0x04670550, nsBoxLayoutState & {...}, int & 0x00000000) line 5019 nsSprocketLayout::GetAscent(nsSprocketLayout * const 0x029d90c0, nsIFrame * 0x040a79fc, nsBoxLayoutState & {...}, int & 0x000000e1) line 1563 nsBoxFrame::GetAscent(nsBoxFrame * const 0x040a79fc, nsBoxLayoutState & {...}, int & 0x000000e1) line 971 + 38 bytes nsSprocketLayout::Layout(nsSprocketLayout * const 0x029d90c0, nsIFrame * 0x040a79fc, nsBoxLayoutState & {...}) line 257 nsBoxFrame::DoLayout(nsBoxFrame * const 0x040a79fc, nsBoxLayoutState & {...}) line 1089 + 34 bytes nsIFrame::Layout(nsBoxLayoutState & {...}) line 802 nsStackLayout::Layout(nsStackLayout * const 0x028d14c0, nsIFrame * 0x040a7680, nsBoxLayoutState & {...}) line 321 nsBoxFrame::DoLayout(nsBoxFrame * const 0x040a7680, nsBoxLayoutState & {...}) line 1089 + 34 bytes nsIFrame::Layout(nsBoxLayoutState & {...}) line 802 nsBoxFrame::Reflow(nsBoxFrame * const 0x040a7680, nsPresContext * 0x030da0b8, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 840 nsRootBoxFrame::Reflow(nsRootBoxFrame * const 0x040a7680, nsPresContext * 0x030da0b8, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 215 nsContainerFrame::ReflowChild(nsIFrame * 0x040a7680, nsPresContext * 0x030da0b8, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int 0x00000000, int 0x00000000, unsigned int 0x00000000, unsigned int & 0x00000000) line 891 + 31 bytes ViewportFrame::Reflow(ViewportFrame * const 0x040a75ec, nsPresContext * 0x030da0b8, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0x00000000) line 229 + 43 bytes IncrementalReflow::Dispatch(nsPresContext * 0x030da0b8, nsHTMLReflowMetrics & {...}, const nsSize & {...}, nsIRenderingContext & {...}) line 857 PresShell::ProcessReflowCommands(int 0x00000001) line 6484 PresShell::WillPaint(PresShell * const 0x030dfd80) line 6143 nsViewManager::DispatchEvent(nsViewManager * const 0x030da5c0, nsGUIEvent * 0x0012f040, nsEventStatus * 0x0012ef24) line 2036 HandleEvent(nsGUIEvent * 0x0012f040) line 176 nsWindow::DispatchEvent(nsWindow * const 0x030da6b4, nsGUIEvent * 0x0012f040, nsEventStatus & nsEventStatus_eIgnore) line 1140 + 10 bytes nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012f040, nsEventStatus & nsEventStatus_eIgnore) line 1166 nsWindow::OnPaint(HDC__ * 0x00000000) line 5717 + 28 bytes nsWindow::ProcessMessage(unsigned int 0x0000000f, unsigned int 0x00000000, long 0x00000000, long * 0x0012f554) line 4257 + 19 bytes nsWindow::WindowProc(HWND__ * 0x002e0126, unsigned int 0x0000000f, unsigned int 0x00000000, long 0x00000000) line 1329 + 27 bytes USER32! 77d48734() USER32! 77d48816() USER32! 77d4b4c0() USER32! 77d4b50c() NTDLL! 7c90eae3() nsWindow::DispatchStarvedPaints(HWND__ * 0x002e0126, long 0x00000000) line 4075 + 10 bytes USER32! 77d4ccd1() USER32! 77d4da57() nsWindow::DispatchPendingEvents() line 4116 nsWindow::ProcessMessage(unsigned int 0x00000200, unsigned int 0x00000000, long 0x00c30156, long * 0x0012fb88) line 4488 nsWindow::WindowProc(HWND__ * 0x002b00f2, unsigned int 0x00000200, unsigned int 0x00000000, long 0x00c30156) line 1329 + 27 bytes USER32! 77d48734() USER32! 77d48816() USER32! 77d489cd() USER32! 77d48a10() nsAppShell::Run(nsAppShell * const 0x00baa870) line 135 nsAppStartup::Run(nsAppStartup * const 0x00baa7d0) line 161 + 26 bytes XRE_main(int 0x00000001, char * * 0x003f6ed0, const nsXREAppData * 0x0042101c kAppData) line 2289 + 35 bytes main(int 0x00000001, char * * 0x003f6ed0) line 61 + 18 bytes mainCRTStartup() line 338 + 17 bytes KERNEL32! 7c816d4f()
Similar stack: http://www.faser.net/mab/chrome/content/mab.xul seed=140;skip=255;changesPerInterval=144;interval=246
Similar stack: http://www.croczilla.com/svg/samples/xulsvg1/xulsvg1.xul seed=140;skip=255;changesPerInterval=144;interval=246
Probably bug 253479
Depends on: 253479
Whiteboard: [sg:nse] null dereference
Flags: blocking1.8.0.1?
Whiteboard: [sg:nse] null dereference → [sg:dos] null dereference
Component: Layout → Layout: R & A Pos
QA Contact: layout → layout.r-and-a-pos
Assignee: nobody → dbaron
The testcase in comment 0 currently (with the other fixes in my tree) gives me a crash related to XUL menus doing attribute changes during frame construction.
... and I see the same problem for the testcase in comment 1.
...and the testcase in comment 2 now crashes in something that's probably related to XUL menus setting attributes when they shouldn't.
Flags: blocking1.8.0.2?
Flags: blocking1.8.0.1?
Flags: blocking1.8.0.1-
Summary: Crash [@ nsIFrame::GetStyleData() line 607] → Crash [@ nsIFrame::GetStyleData() line 607] involving XUL menus
Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.9a1) Gecko/20060205 Firefox/1.6a1 Comment 0, opt: After 20703 or 20847, it crashes [@ nsTreeBodyFrame::InvalidateScrollbars] with PresShell::Thaw on the stack Comment 0, debug: Around 3000, it crashes [@ nsCSSFrameConstructor::FindFrameWithContent] Comment 1, opt: After 6015 or 8751, it stops drawing. Comment 1, debug: Around 3000, it crashes [@ nsCSSFrameConstructor::FindFrameWithContent]. Comment 2, opt: Passes 25000 without problems. Comment 2, debug: Passes 25000 without problems. dbaron, do any of the problems I see correspond to the XUL menu problems you saw? If not, do you still see the XUL menu problems? Do you have a good enough understanding of those problems that you don't need simplified testcases?
Not blocking 1.8.0.2: it's not exploitable and we're having trouble getting resources the more important exploitable flaws fixed in this timeframe. If this is blocking further testing we can reconsider.
Flags: blocking1.8.0.2? → blocking1.8.0.2-
Summary: Crash [@ nsIFrame::GetStyleData() line 607] involving XUL menus → Crash [@ nsIFrame::GetStyleData() line 607] (called by CalculateHypotheticalBox) involving XUL menus
update crash bugs to critical per guidelines.
Severity: major → critical
Crash Signature: [@ nsIFrame::GetStyleData() line 607]
Opening based on comment 8.
Group: core-security
Crash Signature: [@ nsIFrame::GetStyleData() line 607] → [@ nsIFrame::GetStyleData() line 607] [@ nsIFrame::GetStyleData line 607]
Site no longer loads and no testcases attached.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.