New issue
Advanced search Search tips

Issue 850861 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

Integer-overflow in gpu::raster::RasterDecoderImpl::DoTexStorage2D

Project Member Reported by ClusterFuzz, Jun 8 2018

Issue description

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

Fuzzer: libFuzzer_gpu_raster_fuzzer
Job Type: libfuzzer_chrome_ubsan
Platform Id: linux

Crash Type: Integer-overflow
Crash Address: 
Crash State:
  gpu::raster::RasterDecoderImpl::DoTexStorage2D
  gpu::raster::RasterDecoderImpl::HandleTexStorage2D
  gpu::error::Error gpu::raster::RasterDecoderImpl::DoCommandsImpl<false>
  
Sanitizer: undefined (UBSAN)

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_ubsan&range=564529:564591

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

Issue filed automatically.

See https://chromium.googlesource.com/chromium/src/+/master/testing/libfuzzer/reference.md for more information.
 
Project Member

Comment 1 by ClusterFuzz, Jun 8 2018

Components: Internals>GPU>Internals
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 2 by ClusterFuzz, Jun 8 2018

Cc: piman@chromium.org
Labels: ClusterFuzz-Auto-CC
Automatically adding ccs based on OWNERS file / target commit history.

If this is incorrect, please add ClusterFuzz-Wrong label.
Project Member

Comment 3 by ClusterFuzz, Jun 8 2018

Labels: Test-Predator-Auto-Owner
Owner: backer@chromium.org
Status: Assigned (was: Untriaged)
Automatically assigning owner based on suspected regression changelist https://chromium.googlesource.com/chromium/src/+/774e03c6946af8fa37f226e3446bd80a5d27fd37 (Remove levels from RasterInterface).

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.

Comment 4 by backer@chromium.org, Jun 11 2018

Status: Started (was: Assigned)
Project Member

Comment 5 by bugdroid1@chromium.org, Jun 11 2018

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

commit 1fbb849d6fcc93b3e504d831a801a37c466b2eb9
Author: Jonathan Backer <backer@chromium.org>
Date: Mon Jun 11 21:44:37 2018

Fix clusterfuzz int overflow

width and height are int32. ComputeImageDataSizesES3 returns uint32.
clusterfuzz found a case where width * height overflows an int32, but
not an uint32.

This CL does the safe mult in uint32. Conversion of width and height
to uint32 is fine because we've previously verified them as
non-negative.

Bug:  850861 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I781490f9fa821eff8a32319ca76d3aa9176dec92
Reviewed-on: https://chromium-review.googlesource.com/1095647
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566157}
[modify] https://crrev.com/1fbb849d6fcc93b3e504d831a801a37c466b2eb9/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/1fbb849d6fcc93b3e504d831a801a37c466b2eb9/gpu/command_buffer/service/raster_decoder.cc

Project Member

Comment 6 by ClusterFuzz, Jun 12 2018

ClusterFuzz has detected this issue as fixed in range 566149:566173.

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

Fuzzer: libFuzzer_gpu_raster_fuzzer
Job Type: libfuzzer_chrome_ubsan
Platform Id: linux

Crash Type: Integer-overflow
Crash Address: 
Crash State:
  gpu::raster::RasterDecoderImpl::DoTexStorage2D
  gpu::raster::RasterDecoderImpl::HandleTexStorage2D
  gpu::error::Error gpu::raster::RasterDecoderImpl::DoCommandsImpl<false>
  
Sanitizer: undefined (UBSAN)

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_ubsan&range=564529:564591
Fixed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_ubsan&range=566149:566173

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

See https://chromium.googlesource.com/chromium/src/+/master/testing/libfuzzer/reference.md 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 7 by ClusterFuzz, Jun 12 2018

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