Closed
Bug 492496
Opened 16 years ago
Closed 16 years ago
reproducible crash [@ specializeTreesToMissingGlobals ] - js3250.dll@0x60b87 js3250.dll@0x60b7e
Categories
(Core :: JavaScript Engine, defect, P1)
Tracking
()
VERIFIED
FIXED
mozilla1.9.2a1
People
(Reporter: chofmann, Assigned: gal)
Details
(4 keywords, Whiteboard: [sg:critical?] fixed-in-tracemonkey)
Crash Data
Attachments
(2 files, 4 obsolete files)
|
1.60 KB,
patch
|
graydon
:
review+
|
Details | Diff | Splinter Review |
|
912 bytes,
text/html
|
Details |
only appears in beta4 top 100 at #96 but it does seem easily immediately reproducible if you visit
http://www.danawa.com/elec/ js3250.dll@0x60b87
stack trace on
Version 3.5b5pre Build ID 20090508031530 Branch 1.9.1
OS Mac OS X 10.5.6 9G55
looks like:
Frame Module Signature [Expand] Source
0 libmozjs.dylib specializeTreesToMissingGlobals js/src/jstracer.cpp:1223
1 libmozjs.dylib specializeTreesToMissingGlobals js/src/jstracer.cpp:1224
2 libmozjs.dylib TraceRecorder::findNestedCompatiblePeer js/src/jstracer.cpp:3985
3 libmozjs.dylib js_RecordLoopEdge js/src/jstracer.cpp:3837
4 libmozjs.dylib js_MonitorLoopEdge js/src/jstracer.cpp:4436
5 libmozjs.dylib js_Interpret js/src/jsinterp.cpp:3835
6 libmozjs.dylib js_Execute js/src/jsinterp.cpp:1599
7 libmozjs.dylib JS_EvaluateUCScriptForPrincipals js/src/jsapi.cpp:5145
8 XUL nsJSContext::EvaluateString dom/src/base/nsJSEnvironment.cpp:1603
9 XUL nsScriptLoader::EvaluateScript content/base/src/nsScriptLoader.cpp:686
10 XUL nsScriptLoader::ProcessRequest content/base/src/nsScriptLoader.cpp:600
11 XUL nsScriptLoader::ProcessScriptElement content/base/src/nsScriptLoader.cpp:554
12 XUL nsScriptElement::MaybeProcessScript content/base/src/nsScriptElement.cpp:193
13 XUL nsHTMLScriptElement::MaybeProcessScript content/html/content/src/nsHTMLScriptElement.cpp:546
14 XUL HTMLContentSink::ProcessSCRIPTEndTag content/html/document/src/nsHTMLContentSink.cpp:3142
15 XUL SinkContext::CloseContainer content/html/document/src/nsHTMLContentSink.cpp:1022
16 XUL HTMLContentSink::CloseContainer content/html/document/src/nsHTMLContentSink.cpp:2393
17 XUL CNavDTD::CloseContainer parser/htmlparser/src/CNavDTD.cpp:2800
18 XUL CNavDTD::HandleEndToken parser/htmlparser/src/CNavDTD.cpp:1679
19 XUL CNavDTD::HandleToken parser/htmlparser/src/CNavDTD.cpp:760
20 XUL CNavDTD::BuildModel parser/htmlparser/src/CNavDTD.cpp:332
21 XUL nsParser::BuildModel parser/htmlparser/src/nsParser.cpp:2378
22 XUL nsParser::ResumeParse parser/htmlparser/src/nsParser.cpp:2251
23 XUL nsParser::ContinueInterruptedParsing parser/htmlparser/src/nsParser.cpp:1751
24 XUL nsRunnableMethod<nsContentSink>::Run nsThreadUtils.h:264
25 XUL nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:510
26 XUL NS_ProcessPendingEvents_P nsThreadUtils.cpp:180
27 XUL nsBaseAppShell::NativeEventCallback widget/src/xpwidgets/nsBaseAppShell.cpp:121
28 XUL nsAppShell::ProcessGeckoEvents widget/src/cocoa/nsAppShell.mm:405
29 CoreFoundation CoreFoundation@0x735f4
30 CoreFoundation CoreFoundation@0x73cd7
31 HIToolbox HIToolbox@0x302bf
32 HIToolbox HIToolbox@0x30011
33 HIToolbox HIToolbox@0x2ff4c
34 AppKit AppKit@0x40d7c
35 AppKit AppKit@0x4062f
36 JavaEmbeddingPlugin JavaEmbeddingPlugin@0x12fc2
37 AppKit AppKit@0x3966a
38 XUL nsAppShell::Run widget/src/cocoa/nsAppShell.mm:716
39 XUL nsAppStartup::Run toolkit/components/startup/src/nsAppStartup.cpp:193
40 XUL XRE_main toolkit/xre/nsAppRunner.cpp:3298
41 firefox-bin main browser/app/nsBrowserApp.cpp:156
42 firefox-bin firefox-bin@0x1541
43 firefox-bin firefox-bin@0x1468
44 @0x0
Flags: blocking1.9.1?
| Reporter | ||
Comment 1•16 years ago
|
||
might also appear as signature js3250.dll@0x60b7e - http://www.danawa.com
Summary: crash [@ specializeTreesToMissingGlobals ] - js3250.dll@0x60b87 → crash [@ specializeTreesToMissingGlobals ] - js3250.dll@0x60b87 js3250.dll@0x60b7e
| Reporter | ||
Comment 2•16 years ago
|
||
also hit the crash at
clicking around on left hand menu at http://www.solarlog-home.de/gergal/
& follow up session restore of crash at http://www.solarlog-home.de/gergal/
other users have crashed there with stack signature js3250.dll@0x60b7e which ranks #33 for 3.5b4.
combining those two immediately reproducable crashes plus other possible js3250.dll signatures could move this much higher in the rankings
need to look at other possible
js3250.dll@0x73075 crashes on wide number of facebook, ebay, & google map pages
to see if they might also be related.
| Reporter | ||
Comment 3•16 years ago
|
||
js3250.dll@0x73075 crashes have a much different stack. following up to another bug.
| Reporter | ||
Updated•16 years ago
|
Summary: crash [@ specializeTreesToMissingGlobals ] - js3250.dll@0x60b87 js3250.dll@0x60b7e → reproducible crash [@ specializeTreesToMissingGlobals ] - js3250.dll@0x60b87 js3250.dll@0x60b7e
| Assignee | ||
Comment 4•16 years ago
|
||
Can you capture the page to make sure we don't lose this one? If you can reproduce offline that would be great (I will start working on this immediately, but just to make sure it doesn't go away server side).
| Assignee | ||
Updated•16 years ago
|
Assignee: general → gal
Priority: -- → P1
Target Milestone: --- → mozilla1.9.1
Updated•16 years ago
|
Flags: blocking1.9.1? → blocking1.9.1+
Updated•16 years ago
|
Flags: blocking1.9.1+ → blocking1.9.1?
Updated•16 years ago
|
Flags: blocking1.9.1? → blocking1.9.1+
| Assignee | ||
Comment 5•16 years ago
|
||
I am a bit worried about the stacks I see. Making this private. Explanation to follow.
Group: core-security
Comment 6•16 years ago
|
||
| Assignee | ||
Comment 7•16 years ago
|
||
Doesn't crash for me. The main page stopped crashing too.
Comment 8•16 years ago
|
||
Should probably up the severity. Better reduced testcase to follow.
| Assignee | ||
Comment 9•16 years ago
|
||
Trashing: 0x193c2ee0
specializing: 0x193c3460
specializing: 0x193c47a0
specializing: 0x193c2ee0
specializing: 0x193c3460
specializing: 0x193c47a0
specializing: 0x193c47a0
specializing: 0x193c2ee0
specializing: 0x193c3460
specializing: 0x193c47a0
specializing: 0x193c47a0
specializing: 0x193c2ee0
specializing: 0x193c3460
specializing: 0x193c47a0
specializing: 0x193c47a0
specializing: 0x193c47a0
specializing: 0x193c2ee0
We trash a tree, and moments later we access it again trying to specialize it.
| Assignee | ||
Comment 10•16 years ago
|
||
Yeah, this is use after free and all sorts of exploitable.
Severity: normal → critical
Comment 12•16 years ago
|
||
(In reply to comment #11)
> Created an attachment (id=377226) [details]
> 360-line fully local testcase
>
> Sort-of crashable.
Manually refresh this to crash latest Shiretoko - Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b5pre) Gecko/20090513 Shiretoko/3.5b5pre
Updated•16 years ago
|
Comment 13•16 years ago
|
||
Will wake up after sleep to get a fully reduced testcase.
| Assignee | ||
Comment 14•16 years ago
|
||
Ok, this is very odd:
Trashing: 0x17350e80, ti = 0x0
specializing linked: 0x173513f0
specializing linked: 0x173526f0
specializing dependent: 0x17350e80
specializing linked: 0x173513f0
specializing dependent: 0x173526f0
specializing linked: 0x173526f0
specializing dependent: 0x17350e80
specializing linked: 0x173513f0
specializing dependent: 0x173526f0
specializing linked: 0x173526f0
specializing dependent: 0x17350e80
specializing linked: 0x173513f0
specializing dependent: 0x173526f0
specializing linked: 0x173526f0
specializing dependent: 0x173526f0
specializing dependent: 0x17350e80
0x17350e80 is a dependent tree, but its tree info is NULL and hence the linked tree never got cleared
| Assignee | ||
Comment 15•16 years ago
|
||
Purging fragments for JSScript 0x1a490440.
and later on
Looking for type-compatible peer (http://www.danawa.com/js/common_func.js:165@262)
checking nested types 0x1a4910e0: capture global type global5: 0=O
specializing dependent: 0x1a4916f0
capture global type global5: 0=O
specializing dependent: 0x1a490440
I think dependent trees don't get cleared when we purge fragments from global scripts. Have to confer with graydon.
| Assignee | ||
Comment 16•16 years ago
|
||
When purging global scripts, we bypassed js_TrashTree, which left some dependent and linked trees in a stale state. Purge all tree roots with a matching ip using TrashTrees. The branches will be pruned automatically by doing so.
Attachment #377242 -
Flags: review?(graydon)
| Assignee | ||
Comment 17•16 years ago
|
||
Attachment #377242 -
Attachment is obsolete: true
Attachment #377244 -
Flags: review?(graydon)
Attachment #377242 -
Flags: review?(graydon)
| Assignee | ||
Comment 18•16 years ago
|
||
chris, can you try to confirm that the patch fixes the problem?
| Assignee | ||
Comment 19•16 years ago
|
||
Attachment #377244 -
Attachment is obsolete: true
Attachment #377246 -
Flags: review?(graydon)
Attachment #377244 -
Flags: review?(graydon)
Comment 20•16 years ago
|
||
Comment on attachment 377246 [details] [diff] [review]
list only contains tree roots, so assert that
Oh dear. Sorry, yes, that's better.
Attachment #377246 -
Flags: review?(graydon) → review+
| Assignee | ||
Comment 21•16 years ago
|
||
This bug exists on branch. I think its very hard to exploit in practice. We can probably open this up after rc1.
| Assignee | ||
Comment 22•16 years ago
|
||
Whiteboard: fixed-in-tracemonkey
Updated•16 years ago
|
Whiteboard: fixed-in-tracemonkey → [sg:critical?] fixed-in-tracemonkey
Comment 23•16 years ago
|
||
Would welcome thoughts on how possible this is to turn into a shell testcase.
Attachment #377226 -
Attachment is obsolete: true
Updated•16 years ago
|
Flags: in-testsuite?
Comment 24•16 years ago
|
||
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Comment 25•16 years ago
|
||
Keywords: fixed1.9.1
Comment 26•16 years ago
|
||
Verified fixed on trunk and 1.9.1 with:
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2a1pre) Gecko/20090522 Minefield/3.6a1pre ID:20090522032716
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1pre) Gecko/20090521 Shiretoko/3.5pre ID:20090521135222
Status: RESOLVED → VERIFIED
Keywords: fixed1.9.1 → verified1.9.1
Target Milestone: mozilla1.9.1 → mozilla1.9.2a1
Updated•15 years ago
|
Group: core-security
Flags: wanted1.9.0.x-
Updated•14 years ago
|
Crash Signature: [@ specializeTreesToMissingGlobals ]
Comment 27•12 years ago
|
||
Filter on qa-project-auto-change:
Bug in removed tracer code, setting in-testsuite- flag.
Flags: in-testsuite? → in-testsuite-
You need to log in
before you can comment on or make changes to this bug.
Description
•