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

Issue 715387 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: 2017-05-01
OS: Mac
Pri: 2
Type: Bug



Sign in to add a comment

FrameSelection::SelectAll should bail if selectstart event handler removes the frame

Project Member Reported by ClusterFuzz, Apr 26 2017

Issue description

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

Fuzzer: ifratric-browserfuzzer-v3
Job Type: mac_asan_chrome
Platform Id: mac

Crash Type: UNKNOWN READ
Crash Address: 0x0000000005b0
Crash State:
  blink::Document::updateStyleAndLayoutTreeIgnorePendingStylesheets
  blink::Document::updateStyleAndLayoutIgnorePendingStylesheets
  blink::FrameSelection::setFocusedNodeIfNeeded
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=mac_asan_chrome&range=450347:450401

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


Issue filed automatically.

See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.
 
Cc: msrchandra@chromium.org
Components: Blink>Editing
Labels: M-60 Test-Predator-Correct-CLs
Owner: yosin@chromium.org
Status: Assigned (was: Untriaged)
Assigning to the concern owner using Predator results --
The result is a list of CLs that change the crashed files. 

Author: yosin
Project: chromium
Changelist: https://chromium.googlesource.com/chromium/src/+/d892f9592860691ae9a782c12260c94ed6bd1a63
Time: Tue Feb 14 15:56:00 2017
Lines 170-171, 239-244 of file FrameSelection.cpp which potentially caused crash are changed in this cl (frame #4, "computeVisibleSelectionInDOMTreeDeprecated"; frame #6, "blink::FrameSelection::didSetSelectionDeprecated").
Minimum distance from crash line to modified line: 0. (file: FrameSelection.cpp, crashed on: 170, modified: 170).

@yosin -- Could you please look into the issue, kindly re-assign if it is not related to your changes.
Thank You.

Comment 2 by yosin@chromium.org, Apr 27 2017

Labels: -M-60

Comment 3 by yosin@chromium.org, Apr 27 2017

Labels: Pri-2
Owner: ----
Status: Available (was: Assigned)
Lower to Pri-2, since this issue caused by unusual HTML.
Owner: xiaoche...@chromium.org
Status: Started (was: Available)
Summary: FrameSelection::SelectAll should bail if selectstart event handler removes the frame (was: Crash in blink::Document::updateStyleAndLayoutTreeIgnorePendingStylesheets)
Minimized repro case:

<iframe id="frame"></iframe>
<script>
frame.contentDocument.onselectstart = () => frame.remove();
frame.contentDocument.execCommand("selectAll"); 
</script>

NextAction: 2017-05-01
In review: https://codereview.chromium.org/2848993002
Project Member

Comment 6 by bugdroid1@chromium.org, May 1 2017

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

commit 73fe6ba4ceb2db91a43ee2305f69ffde08001f62
Author: xiaochengh <xiaochengh@chromium.org>
Date: Mon May 01 05:42:36 2017

Make FrameSelection::SelectAll bail if 'selectstart' detaches frame

BUG= 715387 
TEST=LayoutTests/editing/selection/selectstart_detaches_frame.html

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

[add] https://crrev.com/73fe6ba4ceb2db91a43ee2305f69ffde08001f62/third_party/WebKit/LayoutTests/editing/selection/selectstart_detaches_frame.html
[modify] https://crrev.com/73fe6ba4ceb2db91a43ee2305f69ffde08001f62/third_party/WebKit/Source/core/editing/FrameSelection.cpp

Project Member

Comment 7 by ClusterFuzz, May 1 2017

ClusterFuzz has detected this issue as fixed in range 468288:468298.

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

Fuzzer: ifratric-browserfuzzer-v3
Job Type: mac_asan_chrome
Platform Id: mac

Crash Type: UNKNOWN READ
Crash Address: 0x0000000005b0
Crash State:
  blink::Document::updateStyleAndLayoutTreeIgnorePendingStylesheets
  blink::Document::updateStyleAndLayoutIgnorePendingStylesheets
  blink::FrameSelection::setFocusedNodeIfNeeded
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=mac_asan_chrome&range=450347:450401
Fixed: https://clusterfuzz.com/revisions?job=mac_asan_chrome&range=468288:468298

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


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.
Project Member

Comment 8 by ClusterFuzz, May 1 2017

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

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

Sign in to add a comment