Test cases (was: Crash at weird memory address on 32-bit builds)
Categories
(Core :: JavaScript Engine, defect, P3)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox-esr78 | --- | unaffected |
| firefox81 | --- | unaffected |
| firefox82 | --- | fixed |
| firefox83 | --- | fixed |
People
(Reporter: gkw, Assigned: lth)
References
(Blocks 1 open bug, Regression)
Details
(4 keywords, Whiteboard: [sec-survey][post-critsmash-triage])
Attachments
(2 files, 1 obsolete file)
+++ This bug was initially created as a clone of Bug #1664953 +++
(function (stdlib) {
"use asm";
var sqrt = stdlib.Math.sqrt;
function f(i0) {
i0 = i0 | 0;
i0 = ~~sqrt(-.5);
return (1 / (1 >> (.0 == .0)) & i0 >> 1);
}
return f;
})(this)();
Opt shell:
(gdb) bt
#0 0x3d3bf004 in ?? ()
#1 0x7ff00000 in ?? ()
#2 0x3d3af114 in ?? ()
#3 0xf66f64c0 in ?? ()
(gdb) x/i $pc
=> 0x3d3bf004: mov 0x10(%esi),%ecx
(gdb) x/b $esi
0x7ff00000: Cannot access memory at address 0x7ff00000
(gdb) x/b $ecx
0xffffaad8: 0x00
(gdb)
The first bad revision is:
changeset: https://hg.mozilla.org/mozilla-central/rev/09390cf1d667
user: Dmitry Bezhetskov
date: Mon Sep 14 05:19:44 2020 +0000
summary: Bug 1639153 - Part 6.6: Add tls dependency for truncate i32. r=lth
Run with --fuzzing-safe --no-threads --no-baseline --no-ion, compile with AR=ar sh ./configure --host=x86_64-pc-linux-gnu --target=i686-pc-linux --with-ccache --enable-gczeal --enable-debug-symbols --disable-tests, tested on m-c rev ab7d302fd318.
This seems specific to 32-bit builds.
Updated•5 years ago
|
| Assignee | ||
Comment 1•5 years ago
|
||
Likely a dup of <redacted>, will check after the patch for that lands.
Comment 2•5 years ago
|
||
Updated•5 years ago
|
Comment 3•5 years ago
|
||
Actually this is the new bug, on x86 we assign WasmTlsReg as a return register for WasmBuiltinTruncateDToInt32 and clobber it in masm.branchTruncateDoubleMaybeModUint32 and then preserve/restore it on the ool path.
| Assignee | ||
Comment 4•5 years ago
|
||
Patch tentatively OK, needs commit message + try run. Will approve, but do not land anything without a green try run.
Updated•5 years ago
|
Comment 5•5 years ago
|
||
sec-high assuming "return register" is a jump location and not the return value.
| Assignee | ||
Comment 6•5 years ago
|
||
I think this was fixed by a recent mega-backout, will retest.
| Assignee | ||
Comment 7•5 years ago
|
||
I can repro on the named rev but not on current m-c, and I will assume the backout of bug 1639153 fixed this.
Comment 8•5 years ago
|
||
Should we land the testcase from this bug?
| Assignee | ||
Comment 9•5 years ago
|
||
(In reply to Ryan VanderMeulen [:RyanVM] from comment #8)
Should we land the testcase from this bug?
Yeah, we should. I'll prepare a patch.
| Assignee | ||
Comment 10•5 years ago
|
||
Landing test cases is not P1.
| Assignee | ||
Comment 11•5 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=a351d72bdb50e007e342ec4ef1f7aed643f98ae9 (not security sensitive, as problems were backed out everywhere last week).
| Assignee | ||
Comment 12•5 years ago
|
||
Updated•5 years ago
|
| Assignee | ||
Comment 13•5 years ago
|
||
Test cases can just land, the offending code was backed out.
Comment 14•5 years ago
|
||
https://hg.mozilla.org/integration/autoland/rev/ff4f8778145df6c42e137ee8be10afc495e0069e
https://hg.mozilla.org/mozilla-central/rev/ff4f8778145d
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Comment 15•5 years ago
|
||
As part of a security bug pattern analysis, we are requesting your help with a high level analysis of this bug. It is our hope to develop static analysis (or potentially runtime/dynamic analysis) in the future to identify classes of bugs.
Please visit this google form to reply.
| Assignee | ||
Updated•5 years ago
|
Updated•5 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
| Reporter | ||
Updated•1 year ago
|
Updated•1 year ago
|
Description
•