Closed Bug 1062612 Opened 7 years ago Closed 7 years ago

Crash [@ mozilla::VectorBase] or [@ js::jit::RangeAnalysis::truncate]

Categories

(Core :: JavaScript Engine: JIT, defect)

x86_64
macOS
defect
Not set
critical

Tracking

()

VERIFIED FIXED
mozilla35
Tracking Status
firefox32 --- wontfix
firefox33 + fixed
firefox34 + fixed
firefox35 --- verified

People

(Reporter: gkw, Assigned: sunfish)

References

Details

(Keywords: crash, regression, testcase, Whiteboard: [fuzzblocker][jsbugmon:update])

Crash Data

Attachments

(2 files, 1 obsolete file)

x = [0]
for (var j = 0; j < 1; ++j) {
    (x[j] ? 0 : ~undefined >>> 0) >>> 0
}

crashes js debug shell on m-c changeset acbdce59da2f with --no-threads --ion-eager at mozilla::VectorBase and crashes js opt shell at js::jit::RangeAnalysis::truncate.

Debug configure flags:

CC="clang -Qunused-arguments" CXX="clang++ -Qunused-arguments" AR=ar sh /Users/skywalker/trees/mozilla-central/js/src/configure --target=x86_64-apple-darwin12.5.0 --enable-debug --enable-optimize --enable-nspr-build --enable-more-deterministic --with-ccache --enable-gczeal --enable-debug-symbols --disable-tests

Opt configure flags:

CC="clang -Qunused-arguments" CXX="clang++ -Qunused-arguments" AR=ar sh /Users/skywalker/trees/mozilla-central/js/src/configure --target=x86_64-apple-darwin12.5.0 --disable-debug --enable-optimize --enable-nspr-build --enable-more-deterministic --with-ccache --enable-gczeal --enable-debug-symbols --disable-tests

autoBisect shows this is probably related to the following changeset:

The first bad revision is:
changeset:   https://hg.mozilla.org/mozilla-central/rev/61f05ae95aa4
user:        Dan Gohman
date:        Tue Sep 02 13:01:31 2014 -0700
summary:     Bug 1054972 - IonMonkey: Truncation for phis r=nbp

Setting s-s to be safe (though seems to be a null-deref), and needinfo? from :sunfish.

This has blown up the fuzzers.
Flags: needinfo?(sunfish)
Attached patch block.patch (obsolete) — Splinter Review
Here's the fix.  I'll try to craft a reasonable testcase for this before submitting for review.
Assignee: nobody → sunfish
Flags: needinfo?(sunfish)
Attached patch block.patchSplinter Review
This patch fixes an obvious thinko in my earlier patch. It's surprising that no tests caught this. I added a simple testcase to the patch.
Attachment #8483849 - Attachment is obsolete: true
Attachment #8483879 - Flags: review?(nicolas.b.pierron)
Attachment #8483879 - Flags: review?(nicolas.b.pierron) → review+
https://hg.mozilla.org/integration/mozilla-inbound/rev/36461117c5aa
Crash Signature: [@ js::jit::RangeAnalysis::truncate] [@ mozilla::VectorBase] → [@ js::jit::RangeAnalysis::truncate] [@ mozilla::VectorBase]
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Status: RESOLVED → VERIFIED
Crash Signature: [@ js::jit::RangeAnalysis::truncate] [@ mozilla::VectorBase] → [@ js::jit::RangeAnalysis::truncate] [@ mozilla::VectorBase]
JSBugMon: This bug has been automatically verified fixed.
Duplicate of this bug: 1063259
Given this is fixed in current nightlies and has never existed outside nightlies, I think this doesn't need to be marked security-sensitive.
Crash Signature: [@ js::jit::RangeAnalysis::truncate] [@ mozilla::VectorBase] → [@ js::jit::RangeAnalysis::truncate] [@ mozilla::VectorBase]
Duplicate of this bug: 1063379
Group: core-security
Crash Signature: [@ js::jit::RangeAnalysis::truncate] [@ mozilla::VectorBase] → [@ js::jit::RangeAnalysis::truncate] [@ mozilla::VectorBase] [@ AdjustTruncatedInputs]
Duplicate of this bug: 1064076
Crash Signature: [@ js::jit::RangeAnalysis::truncate] [@ mozilla::VectorBase] [@ AdjustTruncatedInputs] → [@ js::jit::RangeAnalysis::truncate] [@ mozilla::VectorBase] [@ AdjustTruncatedInputs] [@ js::jit::RangeAnalysis::truncate() ]
Duplicate of this bug: 1063297
Duplicate of this bug: 1063064
Comment on attachment 8483879 [details] [diff] [review]
block.patch

Approval Request Comment
[Feature/regressing bug #]:

bug 1054972

[User impact if declined]:

Null-pointer dereferences

[Describe test coverage new/current, TBPL]:

TBPL, on mozilla-central

[Risks and why]:

This patch is an extremely simple and obvious fix for a mistake in the patch for bug 1054972

[String/UUID change made/needed]:

None
Attachment #8483879 - Flags: approval-mozilla-beta?
Attachment #8483879 - Flags: approval-mozilla-aurora?
Comment on attachment 8483879 [details] [diff] [review]
block.patch

Beta+
Aurora+
Attachment #8483879 - Flags: approval-mozilla-beta?
Attachment #8483879 - Flags: approval-mozilla-beta+
Attachment #8483879 - Flags: approval-mozilla-aurora?
Attachment #8483879 - Flags: approval-mozilla-aurora+
You need to log in before you can comment on or make changes to this bug.