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

Issue 752727 link

Starred by 2 users

Issue metadata

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



Sign in to add a comment

Out-of-memory in paint_op_buffer_fuzzer

Project Member Reported by ClusterFuzz, Aug 5 2017

Issue description

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

Fuzzer: libFuzzer_paint_op_buffer_fuzzer
Job Type: mac_libfuzzer_chrome_asan
Platform Id: mac

Crash Type: Out-of-memory (exceeds 2048 MB)
Crash Address: 
Crash State:
  paint_op_buffer_fuzzer
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=mac_libfuzzer_chrome_asan&range=491869:492014

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


Issue filed automatically.

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

Comment 1 by ClusterFuzz, Aug 5 2017

Labels: OS-Linux

Comment 2 by enne@chromium.org, Aug 7 2017

Cc: senorblanco@chromium.org vmp...@chromium.org bsalomon@chromium.org enne@chromium.org
Status: Available (was: Untriaged)
I'm not sure what there is to do here.  It seems like the fuzzer is generating a path that when tesselated requires allocating a ton of edges.

reed@ fixed a previous deserialization oom by sanitizing the inputs (https://skia-review.googlesource.com/c/26805) but that seems harder to do here when there's a layer of tesselation indirection.
Could you attach a deserialized (HTML) version of the test case? I'm not sure how to extract the path from it.

Comment 4 by enne@chromium.org, Aug 8 2017

There is no html for this fuzzer.  It's a fuzzer that takes random memory, deserializes it into cc::PaintOps (some of which contain paths) and then rasters them into a ganesh-backed SkCanvas.

If you download this file, build paint_op_buffer_fuzzer, and then pass the file as an arg to the fuzzer executable, it should repro.  It says it's only on mac, but I don't see why this would be platform specific.


Comment 5 by enne@chromium.org, Aug 8 2017

Where "this file" is the clusterfuzz test case, sorry.
Project Member

Comment 6 by ClusterFuzz, Aug 10 2017

ClusterFuzz has detected this issue as fixed in range 493200:493235.

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

Fuzzer: libFuzzer_paint_op_buffer_fuzzer
Job Type: mac_libfuzzer_chrome_asan
Platform Id: mac

Crash Type: Out-of-memory (exceeds 2048 MB)
Crash Address: 
Crash State:
  paint_op_buffer_fuzzer
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=mac_libfuzzer_chrome_asan&range=491869:492014
Fixed: https://clusterfuzz.com/revisions?job=mac_libfuzzer_chrome_asan&range=493200:493235

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

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.
Project Member

Comment 7 by ClusterFuzz, Aug 10 2017

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