New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 683086 link

Starred by 1 user

Issue metadata

Status: Duplicate
Merged: issue v8:5877
Owner:
Last visit > 30 days ago
Closed: Jan 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug



Sign in to add a comment

V8 correctness failure in configs: x64,ignition:x64,ignition_turbo

Project Member Reported by ClusterFuzz, Jan 20 2017

Issue description

Owner: machenb...@chromium.org
Status: Assigned (was: Untriaged)
As discussed, moving to machenbach@ for further triage.
Cc: bradnelson@chromium.org mstarzinger@chromium.org
Components: -Blink>JavaScript Blink>JavaScript>WebAssembly
Owner: titzer@chromium.org
// PTAL. Simple repro:

function bar() {
  "use asm";
  function foo(a) {
    a = a | 0;
  }
  return { foo: foo };
}
v = bar();
v.__defineGetter__("foo", function() { boom(); });
v.foo();

// This seems to be independent of --validate-asm as both variants get --novalidate-asm passed. But ignition and ignition_turbo are different.

# Compared x64,ignition with x64,ignition_turbo
#
# Flags of x64,ignition:
--abort_on_stack_overflow --expose-gc --allow-natives-syntax --invoke-weak-callbacks --omit-quit --es-staging --random-seed 732681078 --ignition --turbo-filter=~ --hydrogen-filter=~ --novalidate-asm
# Flags of x64,ignition_turbo:
--abort_on_stack_overflow --expose-gc --allow-natives-syntax --invoke-weak-callbacks --omit-quit --es-staging --random-seed 732681078 --ignition-staging --turbo --novalidate-asm
#
# Difference:
- ./fuzz-00265.js:10: ReferenceError: boom is not defined
#
# Source file:
none
#
### Start of configuration x64,ignition:
./fuzz-00265.js:10: ReferenceError: boom is not defined
v.__defineGetter__("foo", function() { boom(); });
                                       ^
ReferenceError: boom is not defined
    at Object.foo (./fuzz-00265.js:10:40)
    at ./fuzz-00265.js:11:2


### End of configuration x64,ignition
#
### Start of configuration x64,ignition_turbo:

### End of configuration x64,ignition_turbo

Re #2: As discussed offline, the --ignition-staging flag implies --validate-asm. This implication is performed _after_ the command line has been parsed. That means the --novalidate-asm in the "x64,ignition_turbo" configuration has basically no effect.
There are actually several things wrong with the returned module object ...

----- Simplified repro snippet:
function bar() {
  "use asm";
  function foo() {}
  return { foo: foo };
}
var v = bar();
print(v)
print(JSON.stringify(Object.getOwnPropertyDescriptor(v, "foo")));

----- Observed output with --validate-asm:
[object WebAssembly.Instance]
{"writable":false,"enumerable":false,"configurable":false}

----- Expected output as per JavaScript spec:
[object Object]
{"writable":true,"enumerable":true,"configurable":true}

Mergedinto: v8:5877
Owner: bradnelson@chromium.org
Status: Duplicate (was: Assigned)
Labels: Hotlist-Asm
Project Member

Comment 7 by ClusterFuzz, Jan 21 2017

ClusterFuzz has detected this issue as fixed in range 42568:42569.

Detailed report: https://cluster-fuzz.appspot.com/testcase?key=4944718074216448

Fuzzer: foozzie_js_mutation
Job Type: foozzie_ignition_turbo
Platform Id: linux

Crash Type: V8 correctness failure
Crash Address: 
Crash State:
  configs: x64,ignition:x64,ignition_turbo
  sources: ac1
  
Sanitizer: address (ASAN)

Fixed: V8: 42568:42569

Minimized Testcase (1.14 Kb): https://cluster-fuzz.appspot.com/download/AMIfv95STZQ2WiY-GO78_3w-O3xQ_CWJnRQkgFTEviqZYeFj1jjukuN48KzYttxu5pHuqIiOx-KdKLgHXzvWOx0t8GS_h0Q5Y-SduX08aC-kEkSjQEPHnsvn3rAOa37R03CgoE9P2zrQKG2ibe2EfvppYi57WPlY7s_IXH0j6wdyHXSZNvz_uBJBF5DYiEh5WzrPaII4UryagzEaIslohYkJixBwwFqwbujSnoM4-DB9nyTQ3NoHH2rzY-YT8OdV14MFnZc9LAIX97X434BPNXcwSG5Fcsnz9yGJcHMWffL60ViOduI0dHZdiO-ia7IzopCJ1Uc8nICL3OiMHaeDm3rH_pEOlM7mgS1_wHa692rK8pdP71HWGqo?testcase_id=4944718074216448

See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.

If you suspect that the result above is incorrect, try re-doing that job on the test case report page.

Sign in to add a comment