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

Issue 755043 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug



Sign in to add a comment

Null-dereference READ in rewind

Project Member Reported by ClusterFuzz, Aug 13 2017

Issue description

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

Fuzzer: libFuzzer_paint_op_buffer_fuzzer
Job Type: libfuzzer_chrome_asan
Platform Id: linux

Crash Type: Null-dereference READ
Crash Address: 0x000000000028
Crash State:
  rewind
  merge_edges_below
  merge_collinear_edges
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan&range=493164:493216

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

Issue filed automatically.

See https://chromium.googlesource.com/chromium/src/+/master/testing/libfuzzer/reproducing.md for more information.
 
Cc: msrchandra@chromium.org
Components: Internals>GPU>Rasterization
Labels: Test-Predator-Wrong-CLs M-62
Owner: senorblanco@chromium.org
Status: Assigned (was: Untriaged)
Predator and CL could not provide any possible suspects.
Using Code Search for the file, "GrTessellator.cpp" assigning to the concern owner who might be related.

@Stephen White -- Could you please look into the issue, kindly re-assign if this is not related to your changes.
Thank You.
Cc: enne@chromium.org
With this test case, I get a different stack trace:

#0  0x00007ffff632dc37 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff6331028 in __GI_abort () at abort.c:89
#2  0x00007ffff6ec18c9 in sk_abort_no_print ()
    at ../../skia/ext/SkMemory_new_handler.cpp:32
#3  0x00007ffff6fbc35c in subdivide (src=..., pts=0x32f895dfb8e8, level=5)
    at ../../third_party/skia/src/core/SkGeometry.cpp:1230
#4  0x00007ffff6fbbf7c in SkConic::chopIntoQuadsPOW2 (this=0x7fffffffd0d8, 
    pts=0x32f895dfb8e0, pow2=5)
    at ../../third_party/skia/src/core/SkGeometry.cpp:1257
#5  0x00007ffff6fa6826 in SkAutoConicToQuads::computeQuads (
    this=0x7fffffffd1b8, conic=..., tol=0.25)
    at ../../third_party/skia/src/core/SkGeometry.h:400
#6  0x00007ffff6fa6252 in SkAutoConicToQuads::computeQuads (
    this=0x7fffffffd1b8, pts=0x7fffffffd170, weight=1.66028653e+19, tol=0.25)
    at ../../third_party/skia/src/core/SkGeometry.h:408
#7  0x00007ffff7353a5f in GrPathUtils::worstCasePointCount (path=..., 
    subpaths=0x7fffffffd2a8, tol=0.25)
    at ../../third_party/skia/src/gpu/GrPathUtils.cpp:179
#8  0x00007ffff73a47c3 in (anonymous namespace)::get_contour_count (path=..., 
    tolerance=0.25) at ../../third_party/skia/src/gpu/GrTessellator.cpp:1800
#9  0x00007ffff73a445c in GrTessellator::PathToTriangles (path=..., 
    tolerance=0.25, clipBounds=..., vertexAllocator=0x7fffffffd488, 
    antialias=true, color=@0x32f895e362c0: 1814568455, 
    canTweakAlphaForCoverage=false, isLinear=0x7fffffffd4bb)
    at ../../third_party/skia/src/gpu/GrTessellator.cpp:1854

although this might just be a different flavour of OOM.
Cc: bsalomon@chromium.org
Note to self/skia: startY is -inf
Project Member

Comment 4 by bugdroid1@chromium.org, Aug 17 2017

The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/e0e20755f6c09b71038ced2bf4a00b4c4593f504

commit e0e20755f6c09b71038ced2bf4a00b4c4593f504
Author: Stephen White <senorblanco@chromium.org>
Date: Thu Aug 17 17:05:01 2017

If a conic contains any infinite points, abort chopping to quads.

Otherwise bad things (asserts, bogus data, dogs and cats living
together, mass hysteria).

Bug:  755043 
Change-Id: I64cd1dacf553463f18babcb24deb2be08c762c67
Reviewed-on: https://skia-review.googlesource.com/35730
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>

[modify] https://crrev.com/e0e20755f6c09b71038ced2bf4a00b4c4593f504/src/core/SkGeometry.cpp

Project Member

Comment 5 by ClusterFuzz, Aug 18 2017

ClusterFuzz has detected this issue as fixed in range 495297:495373.

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

Fuzzer: libFuzzer_paint_op_buffer_fuzzer
Job Type: libfuzzer_chrome_asan
Platform Id: linux

Crash Type: Null-dereference READ
Crash Address: 0x000000000028
Crash State:
  rewind
  merge_edges_below
  merge_collinear_edges
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan&range=493164:493216
Fixed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan&range=495297:495373

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

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

If you suspect that the result above is incorrect, try re-doing that job on the test case report page.
Status: Fixed (was: Assigned)
Project Member

Comment 7 by ClusterFuzz, Aug 18 2017

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