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

Issue 751316 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug



Sign in to add a comment

Null-dereference in blink::WorkerOrWorkletGlobalScope::CanExecuteScripts

Project Member Reported by ClusterFuzz, Aug 2 2017

Issue description

Detailed report: https://clusterfuzz.com/testcase?key=4600412731867136

Fuzzer: mbarbella_js_mutation_layout
Job Type: windows_syzyasan_content_shell
Platform Id: windows

Crash Type: Null-dereference
Crash Address: 0x00000018
Crash State:
  blink::WorkerOrWorkletGlobalScope::CanExecuteScripts
  blink::ModulatorImpl::CompileModule
  blink::ModuleScript::Create
  
Memory Tool: SYZYASAN

Regressed: https://clusterfuzz.com/revisions?job=windows_syzyasan_content_shell&range=490366:490385

Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=4600412731867136


Issue filed automatically.

See https://github.com/google/clusterfuzz-tools for more information.
 
Cc: msrchandra@chromium.org
Labels: Test-Predator-Wrong-CLs M-62
Owner: nhiroki@chromium.org
Status: Assigned (was: Untriaged)
Predator and CL could not provide any possible suspects.
Using Code Search for the file, "workerorworkletglobalscope.cpp" assigning to the concern owner.

Suspecting Commit#
https://chromium.googlesource.com/chromium/src/+/2cab1a07df84484b5088546837ad1c5b1310c00f

@nhiroki -- Could you please look into the issue, kindly re-assign if this is not related to your changes.
Thank You.
Components: Blink>Workers
Status: Started (was: Assigned)
I guess worklet module loading unexpectedly runs even after the worklet context is destroyed.

WIP CL: https://chromium-review.googlesource.com/c/612966
Project Member

Comment 4 by bugdroid1@chromium.org, Aug 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7a0aa1ec0d030c5adf09ea72178f93ca78d97bea

commit 7a0aa1ec0d030c5adf09ea72178f93ca78d97bea
Author: Hiroki Nakagawa <nhiroki@chromium.org>
Date: Tue Aug 15 09:38:55 2017

Worklet: Abort WorkletModuleScriptMap access when an execution context is destroyed

Before this CL, there is no mechanism to stop ongoing access to
WorkletModuleScriptMap when an associated document context or a worklet
execution context is destroyed. This results in crashes.

After this CL, when the document context is destroyed,
WorkletModuleScriptMap::Abort() fails all waiting clients. Also,
WorkletModuleScriptFetcher checks the validity of the worklet context on
completion of cross-thread operations.

Bug:  751316 
Change-Id: Ia900e0e83278ef01c788e515d41d54c4bcf1d591
Reviewed-on: https://chromium-review.googlesource.com/612966
Commit-Queue: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: Kouhei Ueno <kouhei@chromium.org>
Cr-Commit-Position: refs/heads/master@{#494350}
[modify] https://crrev.com/7a0aa1ec0d030c5adf09ea72178f93ca78d97bea/third_party/WebKit/Source/core/loader/modulescript/ModuleScriptFetcher.h
[modify] https://crrev.com/7a0aa1ec0d030c5adf09ea72178f93ca78d97bea/third_party/WebKit/Source/core/loader/modulescript/WorkletModuleScriptFetcher.cpp
[modify] https://crrev.com/7a0aa1ec0d030c5adf09ea72178f93ca78d97bea/third_party/WebKit/Source/core/workers/Worklet.cpp
[modify] https://crrev.com/7a0aa1ec0d030c5adf09ea72178f93ca78d97bea/third_party/WebKit/Source/core/workers/WorkletModuleResponsesMap.cpp
[modify] https://crrev.com/7a0aa1ec0d030c5adf09ea72178f93ca78d97bea/third_party/WebKit/Source/core/workers/WorkletModuleResponsesMap.h
[modify] https://crrev.com/7a0aa1ec0d030c5adf09ea72178f93ca78d97bea/third_party/WebKit/Source/core/workers/WorkletModuleResponsesMapTest.cpp

Project Member

Comment 5 by ClusterFuzz, Aug 15 2017

ClusterFuzz has detected this issue as fixed in range 494006:494010.

Detailed report: https://clusterfuzz.com/testcase?key=4600412731867136

Fuzzer: mbarbella_js_mutation_layout
Job Type: windows_syzyasan_content_shell
Platform Id: windows

Crash Type: Null-dereference
Crash Address: 0x00000018
Crash State:
  blink::WorkerOrWorkletGlobalScope::CanExecuteScripts
  blink::ModulatorImpl::CompileModule
  blink::ModuleScript::Create
  
Memory Tool: SYZYASAN

Regressed: https://clusterfuzz.com/revisions?job=windows_syzyasan_content_shell&range=490366:490385
Fixed: https://clusterfuzz.com/revisions?job=windows_syzyasan_content_shell&range=494006:494010

Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=4600412731867136

See https://github.com/google/clusterfuzz-tools for more information.

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

Comment 6 by ClusterFuzz, Aug 15 2017

Labels: ClusterFuzz-Verified
Status: Verified (was: Started)
ClusterFuzz testcase 4600412731867136 is verified as fixed, so closing issue as verified.

If this is incorrect, please add ClusterFuzz-Wrong label and re-open the issue.

Sign in to add a comment