Null-dereference READ in blink::SpellCheckRequest::IsValid |
|||||
Issue descriptionDetailed report: https://clusterfuzz.com/testcase?key=6280738971058176 Fuzzer: attekett_dom_fuzzer Job Type: linux_asan_chrome_media Platform Id: linux Crash Type: Null-dereference READ Crash Address: 0x000000000011 Crash State: blink::SpellCheckRequest::IsValid blink::WebTextCheckingCompletionImpl::DidFinishCheckingText SpellCheck::PerformSpellCheck Sanitizer: address (ASAN) Regressed: https://clusterfuzz.com/revisions?job=linux_asan_chrome_media&range=573902:573907 Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=6280738971058176 Additional requirements: Requires Gestures Issue filed automatically. See https://github.com/google/clusterfuzz-tools for more information.
,
Jul 16
Automatically assigning owner based on suspected regression changelist https://chromium.googlesource.com/chromium/src/+/8e8395a6ef581ea65088af7a18dc74e2dad9d5c3 ([Spellchecker] Do not call CalculateCharacterSubrange with overshot length). If this is incorrect, please let us know why and apply the Test-Predator-Wrong-CLs label. If you aren't the correct owner for this issue, please unassign yourself as soon as possible so it can be re-triaged.
,
Jul 17
In cold_mode_spell_check_requester.cc:
const Position extended_end =
EndOfSentence(CreateVisiblePosition(chunk_end)).DeepEquivalent();
const Position check_end =
extended_end.IsNull() || extended_end < chunk_end
? chunk_end
: std::min(extended_end, remaining_range.EndPosition());
const EphemeralRange check_range(chunk_start, check_end);
EndOfSentence() may cross treescope boundary. When such a treescope-crossing EphemeralRange is passed into SpellCheckRequest and stored as a range, we may fail to find root editable element.
,
Jul 18
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8ae69efd38b48e5e467b028f7171576b1b01d8a7 commit 8ae69efd38b48e5e467b028f7171576b1b01d8a7 Author: Xiaocheng Hu <xiaochengh@chromium.org> Date: Wed Jul 18 15:29:52 2018 [Spellchecker] Handle shadow-crossing checking range in cold mode checker Cold mode spellchecker sometimes creates shadow-crossing checking ranges (due to EndOfSentence() crossing shadow boundary). SpellCheckRequest converts the checking range into a |Range|, which may have a different or even null root editable element, and crashes when it's null. This patch stops the crash in such case. Note: So far we haven't found stable and meaningful test cases with shadow-crossing checking ranges, so we only stop the crash right now without further fixes. Bug: 863784 Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng Change-Id: I27e61f8bb2921559799a986b6d99c8c3d2fb114f Reviewed-on: https://chromium-review.googlesource.com/1141426 Reviewed-by: Yoshifumi Inoue <yosin@chromium.org> Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org> Cr-Commit-Position: refs/heads/master@{#576070} [modify] https://crrev.com/8ae69efd38b48e5e467b028f7171576b1b01d8a7/third_party/blink/renderer/core/editing/spellcheck/idle_spell_check_callback_test.cc [modify] https://crrev.com/8ae69efd38b48e5e467b028f7171576b1b01d8a7/third_party/blink/renderer/core/editing/spellcheck/spell_check_requester.cc
,
Jul 18
,
Jul 18
ClusterFuzz has detected this issue as fixed in range 576068:576073. Detailed report: https://clusterfuzz.com/testcase?key=6280738971058176 Fuzzer: attekett_dom_fuzzer Job Type: linux_asan_chrome_media Platform Id: linux Crash Type: Null-dereference READ Crash Address: 0x000000000011 Crash State: blink::SpellCheckRequest::IsValid blink::WebTextCheckingCompletionImpl::DidFinishCheckingText SpellCheck::PerformSpellCheck Sanitizer: address (ASAN) Regressed: https://clusterfuzz.com/revisions?job=linux_asan_chrome_media&range=573896:573905 Fixed: https://clusterfuzz.com/revisions?job=linux_asan_chrome_media&range=576068:576073 Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=6280738971058176 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.
,
Jul 18
ClusterFuzz testcase 6280738971058176 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 |
|||||
Comment 1 by ClusterFuzz
, Jul 16Labels: Test-Predator-Auto-Components