New issue
Advanced search Search tips

Issue 864557 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Jul 18
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Mac
Pri: 1
Type: Bug



Sign in to add a comment

CHECK failure: listener_ in gamepad_shared_memory_reader.cc

Project Member Reported by ClusterFuzz, Jul 17

Issue description

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

Fuzzer: lcamtuf_cross_fuzz
Job Type: linux_ubsan_vptr_chrome
Platform Id: linux

Crash Type: CHECK failure
Crash Address: 
Crash State:
  listener_ in gamepad_shared_memory_reader.cc
  blink::GamepadSharedMemoryReader::SampleGamepads
  void blink::SampleGamepads<blink::Gamepad, blink::GamepadList>
  
Sanitizer: undefined (UBSAN)

Regressed: https://clusterfuzz.com/revisions?job=linux_ubsan_vptr_chrome&range=575394:575401

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

Issue filed automatically.

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

Comment 1 by ClusterFuzz, Jul 17

Labels: OS-Mac
Project Member

Comment 2 by ClusterFuzz, Jul 17

Labels: Test-Predator-Auto-Components
Automatically applying components based on crash stacktrace and information from OWNERS files.

If this is incorrect, please apply the Test-Predator-Wrong-Components label.
Project Member

Comment 3 by ClusterFuzz, Jul 17

Labels: Test-Predator-Auto-Owner
Owner: oksamyt@chromium.org
Status: Assigned (was: Untriaged)
Automatically assigning owner based on suspected regression changelist https://chromium.googlesource.com/chromium/src/+/11651852d80d2dad5ace8c81e2e5a6d2b9230c1b (Move GamepadSharedMemoryReader to blink).

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.
Status: Started (was: Assigned)
The cause of the issue is that GamepadSharedMemoryReader::Stop() is called, but there is no GamepadSharedMemoryReader::Start() call before the GamepadSharedMemoryReader::SampleGamepads() call.
Since GamepadSharedMemoryReader::Stop() sets listener to nullptr, SampleGamepads() fails the DCHECK.
GamepadSharedMemoryReader::Start() is not called because GamepadDispatcher::StartListening() returns early if frame is nullptr.
Will publish a CL with proposed fix tomorrow.
Project Member

Comment 5 by ClusterFuzz, Jul 18

Labels: OS-Android
Project Member

Comment 6 by bugdroid1@chromium.org, Jul 18

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

commit 13eb6457a7a87c34105cbcc9fcaa8af83530d4e2
Author: Oksana Zhuravlova <oksamyt@chromium.org>
Date: Wed Jul 18 16:58:03 2018

Check the frame for null only if the reader is null

This change moves the frame check inside the reader check to address
cases when GamepadSharedMemoryReader::Start() is called again after
Stop(), but the frame is null. Since the frame parameter is only used
when creating a new instance of GamepadSharedMemoryReader, the check was
moved inside the corresponding condition.

Bug:  864557 
Change-Id: I7b32e82f5c79af2007b211cf80cff43ff33be2c9
Reviewed-on: https://chromium-review.googlesource.com/1141156
Reviewed-by: Matt Reynolds <mattreynolds@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Oksana Zhuravlova <oksamyt@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576095}
[modify] https://crrev.com/13eb6457a7a87c34105cbcc9fcaa8af83530d4e2/third_party/blink/renderer/modules/gamepad/gamepad_dispatcher.cc

Status: Fixed (was: Started)
Project Member

Comment 8 by ClusterFuzz, Jul 19

ClusterFuzz has detected this issue as fixed in range 576094:576095.

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

Fuzzer: lcamtuf_cross_fuzz
Job Type: linux_ubsan_vptr_chrome
Platform Id: linux

Crash Type: CHECK failure
Crash Address: 
Crash State:
  listener_ in gamepad_shared_memory_reader.cc
  blink::GamepadSharedMemoryReader::SampleGamepads
  void blink::SampleGamepads<blink::Gamepad, blink::GamepadList>
  
Sanitizer: undefined (UBSAN)

Regressed: https://clusterfuzz.com/revisions?job=linux_ubsan_vptr_chrome&range=575394:575401
Fixed: https://clusterfuzz.com/revisions?job=linux_ubsan_vptr_chrome&range=576094:576095

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

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 9 by ClusterFuzz, Jul 19

Labels: ClusterFuzz-Verified
Status: Verified (was: Fixed)
ClusterFuzz testcase 4698230445834240 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