From 486ee3d4c633b143e5aea8898b277be563cd2cd9 Mon Sep 17 00:00:00 2001 From: Kevin Lubick Date: Wed, 21 Mar 2018 10:17:25 -0400 Subject: Port 2 Canvas fuzzers to oss-fuzz Bug: skia: Change-Id: I0d34bfff4a53f831986614844bdc955935f28501 Reviewed-on: https://skia-review.googlesource.com/115582 Commit-Queue: Kevin Lubick Reviewed-by: Mike Klein --- fuzz/FuzzCanvas.cpp | 5 ++--- fuzz/oss_fuzz/FuzzNullCanvas.cpp | 16 ++++++++++++++++ fuzz/oss_fuzz/FuzzRasterN32Canvas.cpp | 16 ++++++++++++++++ 3 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 fuzz/oss_fuzz/FuzzNullCanvas.cpp create mode 100644 fuzz/oss_fuzz/FuzzRasterN32Canvas.cpp (limited to 'fuzz') diff --git a/fuzz/FuzzCanvas.cpp b/fuzz/FuzzCanvas.cpp index 0180809a70..c7f141979b 100644 --- a/fuzz/FuzzCanvas.cpp +++ b/fuzz/FuzzCanvas.cpp @@ -1703,12 +1703,11 @@ DEF_FUZZ(NullCanvas, fuzz) { fuzz_canvas(fuzz, SkMakeNullCanvas().get()); } -// 8.5x11 letter paper at 72ppi. -constexpr SkISize kCanvasSize = {612, 792}; +constexpr SkISize kCanvasSize = {128, 160}; DEF_FUZZ(RasterN32Canvas, fuzz) { auto surface = SkSurface::MakeRasterN32Premul(kCanvasSize.width(), kCanvasSize.height()); - SkASSERT(surface && surface->getCanvas()); + if (!surface || !surface->getCanvas()) { fuzz->signalBug(); } fuzz_canvas(fuzz, surface->getCanvas()); } diff --git a/fuzz/oss_fuzz/FuzzNullCanvas.cpp b/fuzz/oss_fuzz/FuzzNullCanvas.cpp new file mode 100644 index 0000000000..37f32881a9 --- /dev/null +++ b/fuzz/oss_fuzz/FuzzNullCanvas.cpp @@ -0,0 +1,16 @@ +/* + * Copyright 2018 Google, LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "../Fuzz.h" + +void fuzz_NullCanvas(Fuzz* f); + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { + auto fuzz = Fuzz(SkData::MakeWithoutCopy(data, size)); + fuzz_NullCanvas(&fuzz); + return 0; +} diff --git a/fuzz/oss_fuzz/FuzzRasterN32Canvas.cpp b/fuzz/oss_fuzz/FuzzRasterN32Canvas.cpp new file mode 100644 index 0000000000..24d74a5cd6 --- /dev/null +++ b/fuzz/oss_fuzz/FuzzRasterN32Canvas.cpp @@ -0,0 +1,16 @@ +/* + * Copyright 2018 Google, LLC + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "../Fuzz.h" + +void fuzz_RasterN32Canvas(Fuzz* f); + +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { + auto fuzz = Fuzz(SkData::MakeWithoutCopy(data, size)); + fuzz_RasterN32Canvas(&fuzz); + return 0; +} -- cgit v1.2.3