Closed Bug 731181 Opened 14 years ago Closed 14 years ago

Assertion failure: cx->runtime->gcNumber == gcNumberBefore, at js/src/vm/RegExpObject.cpp:655

Categories

(Core :: JavaScript Engine, defect)

x86_64
Linux
defect
Not set
critical

Tracking

()

VERIFIED FIXED
mozilla13
Tracking Status
firefox12 --- unaffected
firefox13 --- fixed
firefox-esr10 --- unaffected
status1.9.2 --- unaffected

People

(Reporter: decoder, Assigned: luke)

References

Details

(Keywords: assertion, regression, testcase, Whiteboard: [sg:critical] js-triage-done [advisory-tracking+])

Attachments

(2 files)

The attached test asserts on mozilla-central revision 2dc40eb83023 (see README for running instructions). The test does not crash when stepping through the assert, but trips other dangerous assertions: Program received signal SIGABRT, Aborted. Assertion failure: mutationCount == p.mutationCount, at ./dist/include/js/HashTable.h:688 Program received signal SIGABRT, Aborted. Assertion failure: !p.found(), at ./dist/include/js/HashTable.h:690 I assume it's some form of memory corruption (test is also fragile). S-s for that.
Mmm fuzzing + strong assertions. I thought I had verified that RegExpShared::compile didn't do any GC-thing allocation but I must have been looking at RegExpCode::compile b/c RegExpShare::compile clearly allocates an atom.
Assignee: general → luke
Whiteboard: js-triage-needed → js-triage-done
There is a pretty simple reproducible test case: gczeal(2,1); /a/y.exec('a') The '1' arg tells GC to start GC'ing on every allocation immediately (instead of waiting for a while). Perhaps the fuzzers could be souped up to use this?
Attached patch patchSplinter Review
Remove those filthy lies.
Attachment #601412 - Flags: review?(wmccloskey)
Comment on attachment 601412 [details] [diff] [review] patch Yeah, this just looks better all around.
Attachment #601412 - Flags: review?(wmccloskey) → review+
jsfunfuzz should generate gczeal(2, 1) fairly often. (How is that different from gczeal(2))?
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
I assume GC things can be exploited (e.g. the Pwn2Own bug). Since this is a regression from bug 724748 we don't need it anywhere other than Fx13
Blocks: 724748
Group: core-security
Keywords: regression
Whiteboard: js-triage-done → [sg:critical] js-triage-done
Status: RESOLVED → VERIFIED
Whiteboard: [sg:critical] js-triage-done → [sg:critical] js-triage-done [advisory-tracking+]
A testcase for this bug was automatically identified at js/src/jit-test/tests/basic/testBug731181.js.
Flags: in-testsuite+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: