]> granicus.if.org Git - imagemagick/commitdiff
[fuzz] Use a static initializer to set the memory limit so it only happens once per...
authorAlex Gaynor <alex.gaynor@gmail.com>
Wed, 10 Jan 2018 13:29:24 +0000 (08:29 -0500)
committerImageMagick <urban-warrior@users.noreply.github.com>
Wed, 10 Jan 2018 13:29:24 +0000 (08:29 -0500)
* Use a static initializer to set the memory limit so it only happens once per process

* oops

Magick++/fuzz/crop_fuzzer.cc
Magick++/fuzz/encoder_fuzzer.cc
Magick++/fuzz/enhance_fuzzer.cc
Magick++/fuzz/huffman_decode_fuzzer.cc
Magick++/fuzz/rotate_fuzzer.cc
Magick++/fuzz/utils.cc [new file with mode: 0644]

index afcebba112b50a5c24b75e6376ce13bb5ce6ea8c..011c12d077a719fa03612335add21c97747d70c9 100644 (file)
@@ -3,6 +3,10 @@
 #include <Magick++/Blob.h>
 #include <Magick++/Image.h>
 
+#include "utils.cc"
+
+static FuzzingResourceLimits kFuzzLimits;
+
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
   uint16_t Width;
   uint16_t Height;
index e575a6f1f45dd208d7036d07c16d1b8394d80b71..405986fff92c05505913a95c6016e74a694be986 100644 (file)
@@ -3,11 +3,14 @@
 #include <Magick++/Blob.h>
 #include <Magick++/Image.h>
 
+#include "utils.cc"
+
+static FuzzingResourceLimits kFuzzLimits;
+
 #define FUZZ_ENCODER_STRING_LITERAL(name) #name
 #define FUZZ_ENCODER FUZZ_ENCODER_STRING_LITERAL(FUZZ_IMAGEMAGICK_ENCODER)
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
-  Magick::ResourceLimits::memory(1500000000);
   const Magick::Blob blob(Data, Size);
   Magick::Image image;
   try {
index 8be37abf411ffb1ac4d892c7f2ae5261f621bc6e..ac2ddd3fb89c50db904da732e8a58c4d0fc6a496 100644 (file)
@@ -3,8 +3,11 @@
 #include <Magick++/Blob.h>
 #include <Magick++/Image.h>
 
+#include "utils.cc"
+
+static FuzzingResourceLimits kFuzzLimits;
+
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
-  Magick::ResourceLimits::memory(1500000000);
   const Magick::Blob blob(Data, Size);
   Magick::Image image;
   try {
index b2c2c4c3166f6aa8b553f4bc4dc3b0d8735a11dd..e10bb3e5e14bf067b2e757b639841b77e7b35db0 100644 (file)
@@ -3,8 +3,11 @@
 #include <Magick++/Blob.h>
 #include <Magick++/Image.h>
 
+#include "utils.cc"
+
+static FuzzingResourceLimits kFuzzLimits;
+
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
-  Magick::ResourceLimits::memory(1500000000);
   const Magick::Blob blob(Data, Size);
   Magick::Image image;
   try {
index b371629f630567e6c9f2cc7475304c417c8a615a..6db922bb6f2e03707aa221b678fdc1e10fbcde24 100644 (file)
@@ -3,6 +3,10 @@
 #include <Magick++/Blob.h>
 #include <Magick++/Image.h>
 
+#include "utils.cc"
+
+static FuzzingResourceLimits kFuzzLimits;
+
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
   if (Size < sizeof(double)) {
     return 0;
@@ -11,7 +15,6 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
   if (!isfinite(Degrees)) {
     return 0;
   }
-  Magick::ResourceLimits::memory(1500000000);
   const Magick::Blob blob(Data + sizeof(Degrees), Size - sizeof(Degrees));
   Magick::Image image;
   try {
diff --git a/Magick++/fuzz/utils.cc b/Magick++/fuzz/utils.cc
new file mode 100644 (file)
index 0000000..6af9fed
--- /dev/null
@@ -0,0 +1,8 @@
+#include <Magick++/ResourceLimits.h>
+
+
+class FuzzingResourceLimits {
+    FuzzingResourceLimits() {
+        Magick::ResourceLimits::memory(1500000000);
+    }
+};