Closed Bug 393775 Opened 17 years ago Closed 17 years ago

Crash [@gklayout!nsXULElement::HideWindowChrome]

Categories

(Core :: General, defect)

1.8 Branch
x86
Windows XP
defect
Not set
critical

Tracking

()

RESOLVED FIXED

People

(Reporter: pvnick, Unassigned)

References

Details

(Keywords: verified1.8.0.14, verified1.8.1.8, Whiteboard: [sg:nse] null dereference (fixed by bug 391043))

Attachments

(1 file)

Attached file testcase
Firefox version:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070812 BonEcho/2.0.0.6

Details:
eax=00000000 ebx=7ffd4000 ecx=00000000 edx=00000000 esi=00a07920 edi=00011970
eip=01cab6a7 esp=0012e764 ebp=0012e788 iopl=0         nv up ei pl nz na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000206
*** WARNING: Unable to verify checksum for C:\mozilla\mozilla\firefox-debug\dist\bin\components\gklayout.dll
gklayout!nsXULElement::HideWindowChrome+0x97:
01cab6a7 8b11            mov     edx,dword ptr [ecx]  ds:0023:00000000=????????

Disassembly:
gklayout!nsXULElement::HideWindowChrome+0x97:
01cab6a7 8b11            mov     edx,dword ptr [ecx]
01cab6a9 8b45e0          mov     eax,dword ptr [ebp-20h]
01cab6ac 50              push    eax
01cab6ad ff92a8000000    call    dword ptr [edx+0A8h]
01cab6b3 33c0            xor     eax,eax
01cab6b5 8be5            mov     esp,ebp
01cab6b7 5d              pop     ebp
01cab6b8 c20400          ret     4

Stack trace:
gklayout!nsXULElement::HideWindowChrome(
                        int aShouldHide = 1)
gklayout!nsXULElement::SetAttr(
                        int aNamespaceID = 0, 
                        class nsIAtom * aName = 0x0167d608, 
                        class nsIAtom * aPrefix = 0x00000000, 
                        class nsAString_internal * aValue = 0x03603428, 
                        int aNotify = 1)
gklayout!nsGenericElement::SetAttr(
                        int aNameSpaceID = 0, 
                        class nsIAtom * aName = 0x0167d608, 
                        class nsAString_internal * aValue = 0x03603428, 
                        int aNotify = 1)
gklayout!nsGenericElement::SetAttribute(
                        class nsAString_internal * aName = 0x03aa8888, 
                        class nsAString_internal * aValue = 0x03603428)
gklayout!nsXULElement::SetAttribute(
                        class nsAString_internal * name = 0x03aa8888, 
                        class nsAString_internal * value = 0x03603428)
xpcom_core!XPTC_InvokeByIndex(
                        class nsISupports * that = 0x034efb2c, 
                        unsigned int methodIndex = 0x1e, 
                        unsigned int paramCount = 2, 
                        struct nsXPTCVariant * params = 0x0012ea58)
xpc3250!XPCWrappedNative::CallMethod(
                        class XPCCallContext * ccx = 0x0012ebd4, 
                        XPCWrappedNative::CallMode mode = CALL_METHOD (0))
xpc3250!XPC_WN_CallMethod(
                        struct JSContext * cx = 0x032ea350, 
                        struct JSObject * obj = 0x02b27a68, 
                        unsigned int argc = 2, 
                        long * argv = 0x03ac74b8, 
                        long * vp = 0x0012ed34)
js3250!js_Invoke(
                        struct JSContext * cx = 0x032ea350, 
                        unsigned int argc = 2, 
                        unsigned int flags = 0)
js3250!js_Interpret(
                        struct JSContext * cx = 0x032ea350, 
                        unsigned char * pc = 0x0389d5b9 ":", 
                        long * result = 0x0012f880)
js3250!js_Invoke(
                        struct JSContext * cx = 0x032ea350, 
                        unsigned int argc = 1, 
                        unsigned int flags = 2)
js3250!js_InternalInvoke(
                        struct JSContext * cx = 0x032ea350, 
                        struct JSObject * obj = 0x02972b78, 
                        long fval = 43626216, 
                        unsigned int flags = 0, 
                        unsigned int argc = 1, 
                        long * argv = 0x02449b68, 
                        long * rval = 0x0012fa60)
js3250!JS_CallFunctionValue(
                        struct JSContext * cx = 0x032ea350, 
                        struct JSObject * obj = 0x02972b78, 
                        long fval = 43626216, 
                        unsigned int argc = 1, 
                        long * argv = 0x02449b68, 
                        long * rval = 0x0012fa60)
gklayout!nsJSContext::CallEventHandler(
                        struct JSObject * aTarget = 0x02972b78, 
                        struct JSObject * aHandler = 0x0299aee8, 
                        unsigned int argc = 1, 
                        long * argv = 0x02449b68, 
                        long * rval = 0x0012fa60)
gklayout!nsGlobalWindow::RunTimeout(
                        struct nsTimeout * aTimeout = 0x032eae38)
gklayout!nsGlobalWindow::TimerCallback(
                        class nsITimer * aTimer = 0x032eaf08, 
                        void * aClosure = 0x032eae38)
xpcom_core!nsTimerImpl::Fire(void)
xpcom_core!nsTimerManager::FireNextIdleTimer(void)
gkwidget!nsAppShell::Run(void)
tkitcmps!nsAppStartup::Run(void)
Flags: blocking1.8.1.7?
Flags: blocking1.8.0.13?
I think this would be fixed by the patch in bug 391043.
However, it still might be that the testcase would crash in chrome://.
However, the testcase doesn't crash in trunk under chrome, so I think the patch for bug 391043 is enough.
Depends on: CVE-2007-5334
ok, the patch in bug 391043 seems to fix this.
However, on branch, this testcase still crashes when loaded as a top level window with chrome:// privileges, but that doesn't happen on trunk. That's probably not worth investigating further, though. 
This appears to be a null dereference crash, am I missing something about why this is marked as a security bug?
Flags: blocking1.8.1.7?
Flags: blocking1.8.0.13?
Whiteboard: [sg:nse] null dereference
Bug 391043 is now fixed on branches, so this should be fixed now too.
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
verified fixed 1.8.1.7 using Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.7pre) Gecko/20070830 BonEcho/2.0.0.7pre ID:2007083003

no crash on testcase - adding verified keyword
Whiteboard: [sg:nse] null dereference → [sg:nse] null dereference (fixed by bug 391043)
Group: security
Flags: in-testsuite?
Verified for 1.8.0.14 using Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.0.14pre) Gecko/20071210 Firefox/1.5.0.13pre. No crash on testcase though it crashes with FF 1.5.0.12.
Changing resolution since this is a Branch only bug.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: