Closed Bug 875804 Opened 12 years ago Closed 12 years ago

Crash [@ check] or Opt-Crash [@ QuoteString]

Categories

(Core :: JavaScript Engine, defect)

x86
Linux
defect
Not set
critical

Tracking

()

VERIFIED FIXED
mozilla24
Tracking Status
firefox23 --- unaffected
firefox24 + fixed
firefox-esr17 --- unaffected
b2g18 --- unaffected

People

(Reporter: decoder, Assigned: bhackett1024)

References

Details

(4 keywords, Whiteboard: [jsbugmon:])

Crash Data

Attachments

(2 files, 1 obsolete file)

The following testcase crashes on mozilla-central revision df526497d949 (no options required): eval('(function () {\ function range(n) {\ for (var i = 0; i < 100000; i++)\ yield i;\ }\ var r = range(10);\ var i = 0;\ for (var x in r)\ assertEq(x,i++);\ ' + '})();');
Opt-crash trace: Program received signal SIGSEGV, Segmentation fault. QuoteString (sp=0x7fffffffbd10, str=<error reading variable: Cannot access memory at address 0x449>, quote=<optimized out>) at js/src/jsopcode.cpp:988 988 const jschar *s = str->getChars(sp->context); #0 QuoteString (sp=0x7fffffffbd10, str=<error reading variable: Cannot access memory at address 0x449>, quote=<optimized out>) at js/src/jsopcode.cpp:988 #1 0x0000000000500b61 in js_QuoteString (cx=0x161f2c0, str=<error reading variable: Cannot access memory at address 0x449>, quote=34) at js/src/jsopcode.cpp:1057 #2 0x0000000000537c57 in js::ValueToSource (cx=<optimized out>, v=...) at s/src/jsstr.cpp:3759 #3 0x0000000000427d77 in JS_ValueToSource (cx=<optimized out>, valueArg=...) at js/src/jsapi.cpp:491 #4 0x000000000041eff4 in ToSource (bytes=<synthetic pointer>, vp=0x7fffffffbe78, cx=0x161f2c0) at js/src/shell/js.cpp:1354 #5 AssertEq (cx=0x161f2c0, argc=2, vp=0x7fffffffbe68) at js/src/shell/js.cpp:1384 #6 0x00007ffff7f9a074 in ?? () #7 0x00007ffff5f3c820 in ?? () rbp 0x449 1097 => 0x4ff684 <QuoteString(js::Sprinter*, JSString*, uint32_t)+852>: testb $0xf,0x0(%rbp) S-s because this crash signature is known to be dangerous and the crash at 0x449 is pretty sure not a null-deref but likely some memory corruption/invalid object.
Crash Signature: [@ check] or Opt-Crash [@ QuoteString] → [@ check] [@ QuoteString]
Whiteboard: [jsbugmon:update,bisect]
Attachment #753815 - Attachment is obsolete: true
Crash Signature: [@ check] [@ QuoteString] → [@ check] [@ QuoteString]
Whiteboard: [jsbugmon:update,bisect] → [jsbugmon:update]
JSBugMon: Bisection requested, result: autoBisect shows this is probably related to the following changeset: The first bad revision is: changeset: 132801:4370f503d69f user: Brian Hackett date: Thu May 23 13:25:19 2013 -0600 summary: Bug 875276 - Don't profile types in scripts until they are compiled by baseline, r=jandem. This iteration took 337.106 seconds to run.
Needinfo from Brian based on comment 4.
Crash Signature: [@ check] [@ QuoteString] → [@ check] [@ QuoteString]
Flags: needinfo?(bhackett1024)
Attached patch patchSplinter Review
During OSR Ion won't notice that an active iterator object is a generator or other custom iterator, and can produce values other than strings from 'for in' loops. Whenever these iterators are used the script's types need to be instantiated immediately so the information can be remembered.
Attachment #754840 - Flags: review?(jdemooij)
Flags: needinfo?(bhackett1024)
Assignee: general → bhackett1024
Blocks: 875276
Keywords: regression, sec-high
Comment on attachment 754840 [details] [diff] [review] patch Review of attachment 754840 [details] [diff] [review]: ----------------------------------------------------------------- Please add the testcase as well.
Attachment #754840 - Flags: review?(jdemooij) → review+
Bug 875806 might be a dup of this one. If it is, it might be easier to take the test from there, since it's a little less ugly ;)
Crash Signature: [@ check] [@ QuoteString] → [@ check] [@ QuoteString]
Whiteboard: [jsbugmon:update] → [jsbugmon:update,ignore]
JSBugMon: The testcase found in this bug no longer reproduces (tried revision 75407626ba46).
Crash Signature: [@ check] [@ QuoteString] → [@ check] [@ QuoteString]
Whiteboard: [jsbugmon:update,ignore] → [jsbugmon:update,bisectfix]
I'll take that back, didn't see this is on inbound already ^^
Whiteboard: [jsbugmon:update,bisectfix] → [jsbugmon:]
Status: NEW → RESOLVED
Closed: 12 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → mozilla24
Status: RESOLVED → VERIFIED
Crash Signature: [@ check] [@ QuoteString] → [@ check] [@ QuoteString]
JSBugMon: This bug has been automatically verified fixed.
Crash Signature: [@ check] [@ QuoteString] → [@ check] [@ QuoteString]
Group: core-security
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: