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

Issue 840134 link

Starred by 3 users

Issue metadata

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



Sign in to add a comment

Abrt in GrPorterDuffXPFactory::Get

Project Member Reported by ClusterFuzz, May 5 2018

Issue description

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

Fuzzer: afl_paint_op_buffer_fuzzer
Job Type: afl_chrome_asan
Platform Id: linux

Crash Type: Abrt
Crash Address: 0x05390000052b
Crash State:
  GrPorterDuffXPFactory::Get
  skpaint_to_grpaint_impl
  SkPaintToGrPaint
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=afl_chrome_asan&range=555636:555647

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

Issue filed automatically.

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

Comment 1 by ClusterFuzz, May 5 2018

Components: Internals>Skia
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, May 5 2018

Cc: enne@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.

Comment 3 by hcm@chromium.org, May 10 2018

Components: -Internals>Skia

Comment 4 by hcm@chromium.org, May 10 2018

Components: Internals>Compositing>Rasterization
Components: Internals>Compositing>OOP-Raster
Owner: khushals...@chromium.org
Status: Assigned (was: Untriaged)

Comment 6 by enne@chromium.org, Jun 5 2018

Cc: bsalomon@chromium.org
Labels: ClusterFuzz-Ignore
Status: WontFix (was: Assigned)
Looks like this is just a correctness assert, and nothing crashes or goes awry if an incorrect blend state is used here.

bsalomon: I was curious, I had been validating that blend modes were no bigger than kLastMode, but it looks like drawRect requires that blend modes be < kLastCoeffMode.  I assume this is not true for all SkPaint blend modes?

Comment 7 by enne@chromium.org, Jun 5 2018

Cc: khushals...@chromium.org
 Issue 840093  has been merged into this issue.
It shouldn't require that. If so it's a bug.

Here is my guess:

The underlying type for SkBlendMode is signed. The mode value is negative. Earlier in non-assertion code we check whether mode < kScreen (AKA kLastCoeffMode) in SkBlendMode_AsCoeff. This passes and we proceed as though this were a coeff mode. However, the assertion casts mode to unsigned before comparing to kLastCoeffMode which then fails. 
Cc: egdaniel@chromium.org

Comment 10 by enne@chromium.org, Jun 5 2018

You're quite right.  It's a -1 blend mode.
Project Member

Comment 11 by ClusterFuzz, Jul 28

ClusterFuzz has detected this issue as fixed in range 578890:578891.

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

Fuzzer: afl_paint_op_buffer_fuzzer
Job Type: afl_chrome_asan
Platform Id: linux

Crash Type: Abrt
Crash Address: 0x05390000052b
Crash State:
  GrPorterDuffXPFactory::Get
  skpaint_to_grpaint_impl
  SkPaintToGrPaint
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=afl_chrome_asan&range=555636:555647
Fixed: https://clusterfuzz.com/revisions?job=afl_chrome_asan&range=578890:578891

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

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.

Sign in to add a comment