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

Issue 622663 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jun 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug



Sign in to add a comment

reg >= first_temporary_register() && reg <= last_temporary_register() in bytecod

Project Member Reported by ClusterFuzz, Jun 23 2016

Issue description

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

Fuzzer: mbarbella_js_mutation
Job Type: linux_asan_d8_ignition_dbg
Platform Id: linux

Crash Type: CHECK failure
Crash Address: 
Crash State:
  reg >= first_temporary_register() && reg <= last_temporary_register() in bytecod
  

Minimized Testcase (0.07 Kb):
Download: https://cluster-fuzz.appspot.com/download/AMIfv94Pwk-BtVYkJABfuT9u1NjOF0zIUsBKtOTWEx9IHilgcfFTXDrc69ZxI0joRF3dOG2CaGP_tDmjGJ5G5q7CHiYAvSgjMJfwp-lNwU1K5hTQEUYpifuaa_K6vqu6fIvyrOhfrMg6Vt3EU2LfLqGFSCGv1cyslQ?testcase_id=5524129617018880
try {
(y = 1[ [...[]]]) => 1;
} catch(e) {; }
for (let _ of f()) { }


Filer: rossberg

See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.
 
Owner: nikolaos@chromium.org
Status: Assigned (was: Available)
Nikos, can you please have a look?
Status: Started (was: Assigned)
Minimized version:
out/Debug/d8 --ignition --no-lazy -e "try { (y = [...[]]) => {} } catch(_) {}"

This does not seem to be a regression, it has never worked as far as I can tell.  I'm looking at it.
This might be related to  issue 622248 , the test case looks similar. Both tests seem to require the --no-lazy flag to trigger, so it looks like it might be something related to eager parsing (this also means it shouldn't hit us in production since --no-lazy isn't a shipping configuration).
Cc: ishell@chromium.org nikolaos@chromium.org
 Issue 622248  has been merged into this issue.
Not really, Ross, --no-lazy just delays the inevitable:
out/Debug/d8 --ignition -e "try { ((y = [...[]]) => {})(); } catch(_) {}"

This has been fixed, waiting for the CL to be reviewed.
https://codereview.chromium.org/2083083007/
Ahh great, thanks for the quick fix!
 Issue 623901  has been merged into this issue.
Project Member

Comment 8 by bugdroid1@chromium.org, Jun 28 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/61c137c8116a800d179ada40570d62a0b70f1d2d

commit 61c137c8116a800d179ada40570d62a0b70f1d2d
Author: nikolaos <nikolaos@chromium.org>
Date: Tue Jun 28 15:08:45 2016

Fix bug with re-scoping arrow function parameter initializers

When re-scoping arrow function parameter initializers, temporaries
should be moved from the closure of the old scope to the closure of
the new scope, if necessary.

R=adamk@chromium.org, rossberg@chromium.org
BUG= chromium:622663 
LOG=N

Review-Url: https://codereview.chromium.org/2083083007
Cr-Commit-Position: refs/heads/master@{#37335}

[modify] https://crrev.com/61c137c8116a800d179ada40570d62a0b70f1d2d/src/ast/scopes.cc
[modify] https://crrev.com/61c137c8116a800d179ada40570d62a0b70f1d2d/src/ast/scopes.h
[modify] https://crrev.com/61c137c8116a800d179ada40570d62a0b70f1d2d/src/parsing/parameter-initializer-rewriter.cc
[add] https://crrev.com/61c137c8116a800d179ada40570d62a0b70f1d2d/test/mjsunit/regress/regress-622663.js

Status: Fixed (was: Started)
Project Member

Comment 10 by ClusterFuzz, Jun 28 2016

ClusterFuzz has detected this issue as fixed in range 37334:37335.

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

Fuzzer: mbarbella_js_mutation
Job Type: linux_asan_d8_ignition_dbg
Platform Id: linux

Crash Type: CHECK failure
Crash Address: 
Crash State:
  reg >= first_temporary_register() && reg <= last_temporary_register() in bytecod
  
Fixed: V8: r37334:37335

Minimized Testcase (0.07 Kb):
Download: https://cluster-fuzz.appspot.com/download/AMIfv94Pwk-BtVYkJABfuT9u1NjOF0zIUsBKtOTWEx9IHilgcfFTXDrc69ZxI0joRF3dOG2CaGP_tDmjGJ5G5q7CHiYAvSgjMJfwp-lNwU1K5hTQEUYpifuaa_K6vqu6fIvyrOhfrMg6Vt3EU2LfLqGFSCGv1cyslQ?testcase_id=5524129617018880
try {
(y = 1[ [...[]]]) => 1;
} catch(e) {; }
for (let _ of f()) { }


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.
Labels: Merge-Approved-5.3
Niko, could you merge this to 5.3 please?
Project Member

Comment 13 by sheriffbot@chromium.org, Jul 9 2016

This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible!

If all merges have been completed, please remove any remaining Merge-Approved labels from this issue.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Merge-Approved-5.3
Project Member

Comment 15 by sheriffbot@chromium.org, Nov 22 2016

Labels: -Restrict-View-EditIssue
Removing EditIssue view restrictions from ClusterFuzz filed bugs. If you believe that this issue should still be restricted, please reapply the label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Sign in to add a comment