Closed
Bug 1359252
Opened 8 years ago
Closed 8 years ago
Assertion failure: [barrier verifier] Unmarked edge: Object 0x7ffff46d1070 'obj' edge to Object 0x7ffff46f4070, at js/src/gc/Verifier.cpp:379
Categories
(Core :: JavaScript: GC, defect)
Tracking
()
VERIFIED
FIXED
mozilla55
Tracking | Status | |
---|---|---|
firefox-esr45 | --- | unaffected |
firefox-esr52 | --- | unaffected |
firefox53 | --- | unaffected |
firefox54 | --- | unaffected |
firefox55 | + | verified |
People
(Reporter: decoder, Assigned: jonco)
References
Details
(6 keywords, Whiteboard: [jsbugmon:update,bisect])
Attachments
(1 file)
(deleted),
patch
|
jandem
:
review+
|
Details | Diff | Splinter Review |
The following testcase crashes on mozilla-central revision e17cbb839dd2 (build with --enable-posix-nspr-emulation --enable-valgrind --enable-gczeal --disable-tests --enable-stdcxx-compat --disable-profiling --enable-debug --enable-optimize, run with --fuzzing-safe --ion-eager):
gczeal(4);
setJitCompilerOption("ion.warmup.trigger", 20);
function h() {
for ([a, b] in { z: 9 }) {}
}
function g(f) {
for (var j = 0; j < 999; - j)
f(0 / 0);
}
g(h);
Backtrace:
received signal SIGSEGV, Segmentation fault.
0x0000000000e28b93 in js::gc::GCRuntime::endVerifyPreBarriers (this=this@entry=0x7ffff695e6f8) at js/src/gc/Verifier.cpp:380
#0 0x0000000000e28b93 in js::gc::GCRuntime::endVerifyPreBarriers (this=this@entry=0x7ffff695e6f8) at js/src/gc/Verifier.cpp:380
#1 0x0000000000e2bef4 in js::gc::GCRuntime::maybeVerifyPreBarriers (this=0x7ffff695e6f8, always=<optimized out>) at js/src/gc/Verifier.cpp:426
#2 0x000000000052ca03 in Interpret (cx=0x7ffff694c000, state=...) at js/src/vm/Interpreter.cpp:1803
#3 0x000000000053b3d2 in js::RunScript (cx=0x7ffff694c000, state=...) at js/src/vm/Interpreter.cpp:410
#4 0x000000000053b957 in js::InternalCallOrConstruct (cx=cx@entry=0x7ffff694c000, args=..., construct=construct@entry=js::NO_CONSTRUCT) at js/src/vm/Interpreter.cpp:488
#5 0x000000000053bc38 in InternalCall (cx=cx@entry=0x7ffff694c000, args=...) at js/src/vm/Interpreter.cpp:515
#6 0x000000000053bd6d in js::Call (cx=cx@entry=0x7ffff694c000, fval=..., fval@entry=..., thisv=..., thisv@entry=..., args=..., rval=..., rval@entry=...) at js/src/vm/Interpreter.cpp:534
#7 0x00000000008429a5 in js::jit::InvokeFunction (cx=0x7ffff694c000, obj=..., constructing=<optimized out>, ignoresReturnValue=<optimized out>, argc=0, argv=0x7fffffffbca0, rval=...) at js/src/jit/VMFunctions.cpp:114
#8 0x0000062fcf5ea07c in ?? ()
[...]
#17 0x0000000000000000 in ?? ()
rax 0x0 0
rbx 0x7fffffffad70 140737488334192
rcx 0x7ffff6c28a2d 140737333332525
rdx 0x0 0
rsi 0x7ffff6ef7770 140737336276848
rdi 0x7ffff6ef6540 140737336272192
rbp 0x7fffffffb1b0 140737488335280
rsp 0x7fffffffac60 140737488333920
r8 0x7ffff6ef7770 140737336276848
r9 0x7ffff7fe4740 140737354024768
r10 0x0 0
r11 0x0 0
r12 0x7ffff46d1070 140737294176368
r13 0x10f01f3 17760755
r14 0x7fffeff4d7f8 140737219188728
r15 0x7ffff46f4070 140737294319728
rip 0xe28b93 <js::gc::GCRuntime::endVerifyPreBarriers()+1395>
=> 0xe28b93 <js::gc::GCRuntime::endVerifyPreBarriers()+1395>: movl $0x0,0x0
0xe28b9e <js::gc::GCRuntime::endVerifyPreBarriers()+1406>: ud2
Marking s-s due to GC being involved.
Comment 1•8 years ago
|
||
Jon, can you please take a look at this?
Component: JavaScript Engine → JavaScript: GC
Flags: needinfo?(jcoppeard)
Assignee | ||
Comment 2•8 years ago
|
||
The write to NativeIterator::obj in CodeGenerator::visitIteratorStartO needs a pre-write barrier as well.
Assignee: nobody → jcoppeard
Flags: needinfo?(jcoppeard)
Attachment #8861865 -
Flags: review?(jdemooij)
Updated•8 years ago
|
Keywords: csectype-uaf,
sec-high
Jon, are 53/54 also affected?
Assignee | ||
Comment 4•8 years ago
|
||
(In reply to Liz Henry (:lizzard) (needinfo? me) from comment #3)
No, this was caused by my patch in bug 867815 which landed on 55.
Blocks: 867815
Flags: needinfo?(jcoppeard)
Comment 5•8 years ago
|
||
[Tracking Requested - why for this release]:
status-firefox-esr45:
--- → unaffected
status-firefox-esr52:
--- → unaffected
tracking-firefox55:
--- → ?
We can track this for 55. But we would already catch this in sec-high triage and platform triage, in theory.
Comment 7•8 years ago
|
||
Comment on attachment 8861865 [details] [diff] [review]
bug1359252-iterator-barrier
Review of attachment 8861865 [details] [diff] [review]:
-----------------------------------------------------------------
Sorry, I should have noticed this when I reviewed the patch. Bug 1358599 will change this code so you might want to land first.
Attachment #8861865 -
Flags: review?(jdemooij) → review+
Assignee | ||
Comment 8•8 years ago
|
||
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
Updated•8 years ago
|
Group: javascript-core-security → core-security-release
Updated•8 years ago
|
Status: RESOLVED → VERIFIED
Comment 10•8 years ago
|
||
JSBugMon: This bug has been automatically verified fixed.
Updated•7 years ago
|
Group: core-security-release
You need to log in
before you can comment on or make changes to this bug.
Description
•