aboutsummaryrefslogtreecommitdiffhomepage
path: root/fuzz/oss_fuzz
diff options
context:
space:
mode:
authorGravatar Kevin Lubick <kjlubick@google.com>2018-03-30 15:05:13 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-03-30 19:31:56 +0000
commite4be55dc28479a0ee103e5d65cd00c441feb5ff2 (patch)
tree5040210babb9a4877247f90024fa1d53981e02e3 /fuzz/oss_fuzz
parent6b6fcc78620270ec2dcd57bd520ec500f60f4505 (diff)
Add Encoder fuzzers
This also includes a helper "fuzzer" for making a corpus. Point it at an image or folder of images and it will decode those images and write the SkPixmap's bytes to disk, such that the fuzzer will be able to read in those bytes as if it had decoded the image (or gotten it from another source). Bug: skia: Change-Id: Iaf223a39078f2b62908fb47929add5d63f22d973 Reviewed-on: https://skia-review.googlesource.com/117367 Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Kevin Lubick <kjlubick@google.com>
Diffstat (limited to 'fuzz/oss_fuzz')
-rw-r--r--fuzz/oss_fuzz/FuzzJPEGEncoder.cpp16
-rw-r--r--fuzz/oss_fuzz/FuzzPNGEncoder.cpp16
-rw-r--r--fuzz/oss_fuzz/FuzzWEBPEncoder.cpp16
3 files changed, 48 insertions, 0 deletions
diff --git a/fuzz/oss_fuzz/FuzzJPEGEncoder.cpp b/fuzz/oss_fuzz/FuzzJPEGEncoder.cpp
new file mode 100644
index 0000000000..3d5ce412e7
--- /dev/null
+++ b/fuzz/oss_fuzz/FuzzJPEGEncoder.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_JPEGEncoder(Fuzz* f);
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ auto fuzz = Fuzz(SkData::MakeWithoutCopy(data, size));
+ fuzz_JPEGEncoder(&fuzz);
+ return 0;
+}
diff --git a/fuzz/oss_fuzz/FuzzPNGEncoder.cpp b/fuzz/oss_fuzz/FuzzPNGEncoder.cpp
new file mode 100644
index 0000000000..8e104166cf
--- /dev/null
+++ b/fuzz/oss_fuzz/FuzzPNGEncoder.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_PNGEncoder(Fuzz* f);
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ auto fuzz = Fuzz(SkData::MakeWithoutCopy(data, size));
+ fuzz_PNGEncoder(&fuzz);
+ return 0;
+}
diff --git a/fuzz/oss_fuzz/FuzzWEBPEncoder.cpp b/fuzz/oss_fuzz/FuzzWEBPEncoder.cpp
new file mode 100644
index 0000000000..f1da38d6ca
--- /dev/null
+++ b/fuzz/oss_fuzz/FuzzWEBPEncoder.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_WEBPEncoder(Fuzz* f);
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ auto fuzz = Fuzz(SkData::MakeWithoutCopy(data, size));
+ fuzz_WEBPEncoder(&fuzz);
+ return 0;
+}