Closed
Bug 621991
Opened 14 years ago
Closed 14 years ago
Assertion failure: FUN_FLAT_CLOSURE(callee_fun) / Crash
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 592202
People
(Reporter: decoder, Unassigned)
References
Details
(5 keywords, Whiteboard: [sg:critical?])
The following shell testcase: test(); function test() { var counter = 0; function f(x,y) { try { throw 42; } catch(e2) { foo(function(){ return x; }| "9.2" && 5 || counter && e); ++counter; } } f(2, 1); } function foo(bar) { return ""+bar; } causes "Assertion failure: FUN_FLAT_CLOSURE(callee_fun), at jsfun.cpp:1178", tested on mc trunk. In an optimized build it crashes: ==1996== Invalid read of size 8 ==1996== at 0x4643A0: js::GetFlatUpvar(JSContext*, JSObject*, long, js::Value*) (in /scratch/holler/LangFuzz/sources/mozilla-central-hg/js.opt/src/shell/js) ==1996== by 0x48DE1C: js_GetProperty(JSContext*, JSObject*, JSObject*, long, js::Value*) (in /scratch/holler/LangFuzz/sources/mozilla-central-hg/js.opt/src/shell/js) ==1996== by 0x5FCD68: js::Interpret(JSContext*, JSStackFrame*, unsigned int, JSInterpMode) (in /scratch/holler/LangFuzz/sources/mozilla-central-hg/js.opt/src/shell/js) ==1996== by 0x476CF6: js::Execute(JSContext*, JSObject*, JSScript*, JSStackFrame*, unsigned int, js::Value*) (in /scratch/holler/LangFuzz/sources/mozilla-central-hg/js.opt/src/shell/js) ==1996== by 0x4118F5: JS_ExecuteScript (in /scratch/holler/LangFuzz/sources/mozilla-central-hg/js.opt/src/shell/js) ==1996== by 0x407850: Process(JSContext*, JSObject*, char*, int) (in /scratch/holler/LangFuzz/sources/mozilla-central-hg/js.opt/src/shell/js) ==1996== by 0x4085FF: Shell(JSContext*, int, char**, char**) (in /scratch/holler/LangFuzz/sources/mozilla-central-hg/js.opt/src/shell/js) ==1996== by 0x408904: main (in /scratch/holler/LangFuzz/sources/mozilla-central-hg/js.opt/src/shell/js) ==1996== Address 0xfff2000000000000 is not stack'd, malloc'd or (recently) free'd Flagged as security because I didn't have time to inspect the crash further.
Comment 1•14 years ago
|
||
Slightly simpler: function p() { } function test() { var counter = 0; function f(x) { try { throw 42; } catch(e) { counter; p(function(){x;}); counter = 1; } } f(2); } test();
Comment 2•14 years ago
|
||
Regression range seems to blame bug 558451. Dup of bug 592202?
Updated•14 years ago
|
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → DUPLICATE
Reporter | ||
Comment 4•13 years ago
|
||
Fixed for a long time and not affecting old branches (according to duped bug), opening this.
Group: core-security
Reporter | ||
Comment 5•12 years ago
|
||
A testcase for this bug was already added in the original bug (bug 592202).
Flags: in-testsuite-
You need to log in
before you can comment on or make changes to this bug.
Description
•