--- /dev/null
+#include <cstdint>
+
+#include <Magick++/Blob.h>
+#include <Magick++/Image.h>
+
+#include "utils.cc"
+#include "encoder_utils.cc"
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
+ return fuzzEncoderWithStringFilename("label", Data, Size);
+}
+
+#include "travis.cc"
--- /dev/null
+static int fuzzEncoderWithStringFilename(const std::string encoder, const uint8_t *Data, size_t Size)
+{
+ // Allow a bit extra to make sure we do proper bounds checking in Magick++
+ if (Size > MagickPathExtent)
+ return 0;
+ std::string color(reinterpret_cast<const char*>(Data), Size);
+
+ Magick::Image image;
+ try {
+ image.read(encoder + ":" + color);
+ }
+ catch (Magick::Exception &e) {
+ }
+ return 0;
+}
\ No newline at end of file
#include <Magick++/Image.h>
#include "utils.cc"
+#include "encoder_utils.cc"
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
- // Allow a bit extra to make sure we do proper bounds checking in Magick++
- if (Size > MagickPathExtent)
- return 0;
- std::string color(reinterpret_cast<const char*>(Data), Size);
-
- Magick::Image image;
- try {
- image.read("xc:" + color);
- }
- catch (Magick::Exception &e) {
- }
- return 0;
+ return fuzzEncoderWithStringFilename("xc", Data, Size);
}
#include "travis.cc"