Home | History | Annotate | Download | only in fuzz
      1 static int fuzzEncoderWithStringFilename(const std::string encoder, const uint8_t *Data, size_t Size, bool (*validate)(const std::string &) = NULL)
      2 {
      3   // Allow a bit extra to make sure we do proper bounds checking in Magick++
      4   if (Size > MagickPathExtent)
      5     return 0;
      6 
      7   std::string fileName(reinterpret_cast<const char*>(Data), Size);
      8 
      9   // Can be used to deny specific file names
     10   if ((validate != NULL) && (validate(fileName) == false))
     11     return 0;
     12 
     13   Magick::Image image;
     14   try {
     15     image.read(encoder + ":" + fileName);
     16   }
     17   catch (Magick::Exception &e) {
     18   }
     19   return 0;
     20 }