aboutsummaryrefslogtreecommitdiffhomepage
path: root/fuzz
diff options
context:
space:
mode:
authorGravatar Kevin Lubick <kjlubick@google.com>2018-02-27 08:30:43 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-02-27 13:47:28 +0000
commitdb1e5c6474c1cd0969006a0c0554f8fdc63c42c8 (patch)
tree2811124d6c9a78348e75ee35a0ccb2c456a0608e /fuzz
parent0157085b8788fb9d95c2f926499dcab81cf035b9 (diff)
Port 3 API fuzzers to be oss-fuzz friendly
Also Remove ScaleToSides, which we hadn't been running for a while. Bug: skia: Change-Id: I772dad722c34681392d5b635b3de716f3b00d597 Reviewed-on: https://skia-review.googlesource.com/110443 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Kevin Lubick <kjlubick@google.com>
Diffstat (limited to 'fuzz')
-rw-r--r--fuzz/Fuzz.h5
-rw-r--r--fuzz/FuzzCommon.h2
-rw-r--r--fuzz/FuzzScaleToSides.cpp43
-rw-r--r--fuzz/oss_fuzz/FuzzAPIImageFilter.cpp16
-rw-r--r--fuzz/oss_fuzz/FuzzAnimatedImage.cpp2
-rw-r--r--fuzz/oss_fuzz/FuzzDrawFunctions.cpp16
-rw-r--r--fuzz/oss_fuzz/FuzzGradients.cpp17
-rw-r--r--fuzz/oss_fuzz/FuzzImage.cpp2
-rw-r--r--fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp2
9 files changed, 56 insertions, 49 deletions
diff --git a/fuzz/Fuzz.h b/fuzz/Fuzz.h
index 9dad0595e7..221b8f87bf 100644
--- a/fuzz/Fuzz.h
+++ b/fuzz/Fuzz.h
@@ -134,9 +134,10 @@ struct Fuzzable {
void (*fn)(Fuzz*);
};
+// Not static so that we can link these into oss-fuzz harnesses if we like.
#define DEF_FUZZ(name, f) \
- static void fuzz_##name(Fuzz*); \
+ void fuzz_##name(Fuzz*); \
sk_tools::Registry<Fuzzable> register_##name({#name, fuzz_##name}); \
- static void fuzz_##name(Fuzz* f)
+ void fuzz_##name(Fuzz* f)
#endif//Fuzz_DEFINED
diff --git a/fuzz/FuzzCommon.h b/fuzz/FuzzCommon.h
index f0efc19a1a..c908606be1 100644
--- a/fuzz/FuzzCommon.h
+++ b/fuzz/FuzzCommon.h
@@ -1,5 +1,5 @@
/*
- * Copyright 2018 Google Inc.
+ * Copyright 2018 Google, LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
diff --git a/fuzz/FuzzScaleToSides.cpp b/fuzz/FuzzScaleToSides.cpp
deleted file mode 100644
index 943ce5c8e0..0000000000
--- a/fuzz/FuzzScaleToSides.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2016 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-// Reminder of how to run:
-// $ env CC=afl-clang CXX=afl-clang++ ./gyp_skia
-// $ ninja -C out/Debug fuzz
-// $ afl-fuzz -i fuzz-in -o fuzz-out out/Debug/fuzz -n ScaleToSides -b @@
-// where you seed fuzz-in/ with one or more small files.
-
-#include "Fuzz.h"
-#include "SkScaleToSides.h"
-#include <cmath>
-
-DEF_FUZZ(ScaleToSides, fuzz) {
- float radius1, radius2, width;
- fuzz->next(&radius1, &radius2, &width);
-
- if (!std::isfinite(radius1) ||
- !std::isfinite(radius2) ||
- !std::isfinite(width) ||
- radius1 <= 0.0f ||
- radius2 <= 0.0f ||
- width <= 0.0f)
- {
- return;
- }
-
- double scale = (double)width / ((double)radius1 + (double)radius2);
- if (scale >= 1.0 || scale <= 0.0) {
- return;
- }
- SkDebugf("%g %g %g %g\n", radius1, radius2, width, scale);
- SkScaleToSides::AdjustRadii(width, scale, &radius1, &radius2);
-
- // TODO(mtklein): add fuzz->keepResult()
- volatile float junk = 0.0f;
- junk *= radius1;
- junk *= radius2;
-}
diff --git a/fuzz/oss_fuzz/FuzzAPIImageFilter.cpp b/fuzz/oss_fuzz/FuzzAPIImageFilter.cpp
new file mode 100644
index 0000000000..1f8753d012
--- /dev/null
+++ b/fuzz/oss_fuzz/FuzzAPIImageFilter.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_ImageFilter(Fuzz* f);
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ auto fuzz = Fuzz(SkData::MakeWithoutCopy(data, size));
+ fuzz_ImageFilter(&fuzz);
+ return 0;
+}
diff --git a/fuzz/oss_fuzz/FuzzAnimatedImage.cpp b/fuzz/oss_fuzz/FuzzAnimatedImage.cpp
index af433348c5..54109f095a 100644
--- a/fuzz/oss_fuzz/FuzzAnimatedImage.cpp
+++ b/fuzz/oss_fuzz/FuzzAnimatedImage.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright 2018 Google Inc.
+ * Copyright 2018 Google, LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
diff --git a/fuzz/oss_fuzz/FuzzDrawFunctions.cpp b/fuzz/oss_fuzz/FuzzDrawFunctions.cpp
new file mode 100644
index 0000000000..ec4e766496
--- /dev/null
+++ b/fuzz/oss_fuzz/FuzzDrawFunctions.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_DrawFunctions(Fuzz* f);
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ auto fuzz = Fuzz(SkData::MakeWithoutCopy(data, size));
+ fuzz_DrawFunctions(&fuzz);
+ return 0;
+}
diff --git a/fuzz/oss_fuzz/FuzzGradients.cpp b/fuzz/oss_fuzz/FuzzGradients.cpp
new file mode 100644
index 0000000000..06948021b3
--- /dev/null
+++ b/fuzz/oss_fuzz/FuzzGradients.cpp
@@ -0,0 +1,17 @@
+/*
+ * 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_Gradients(Fuzz* f);
+
+bool FLAGS_verbose = false;
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ auto fuzz = Fuzz(SkData::MakeWithoutCopy(data, size));
+ fuzz_Gradients(&fuzz);
+ return 0;
+}
diff --git a/fuzz/oss_fuzz/FuzzImage.cpp b/fuzz/oss_fuzz/FuzzImage.cpp
index 0f0f6f5a43..0a8c87aef8 100644
--- a/fuzz/oss_fuzz/FuzzImage.cpp
+++ b/fuzz/oss_fuzz/FuzzImage.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright 2018 Google Inc.
+ * Copyright 2018 Google, LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
diff --git a/fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp b/fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp
index 36c7057dbc..544b00ddaf 100644
--- a/fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp
+++ b/fuzz/oss_fuzz/FuzzTextBlobDeserialize.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright 2018 Google Inc.
+ * Copyright 2018 Google, LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.