"$f" -o "$MAGICK_OUTPUT/${fuzzer}_fuzzer" $MAGICK_LIBS
done
-for encoder in $("$MAGICK_SRC/encoder_list"); do
+for item in $("$MAGICK_SRC/encoder_list"); do
+ encoder="${item:1}"
encoder_flags="-DFUZZ_IMAGEMAGICK_ENCODER=$encoder"
+ if [ "${item:0:1}" == "+" ]; then
+ encoder_flags="$encoder_flags -DFUZZ_IMAGEMAGICK_ENCODER_WRITE=1"
+ fi
$MAGICK_COMPILER $MAGICK_COMPILER_FLAGS -std=c++11 -I$MAGICK_INCLUDE \
"$MAGICK_SRC/encoder_fuzzer.cc" -o "$MAGICK_OUTPUT/encoder_${encoder,,}_fuzzer" \
$encoder_flags $MAGICK_LIBS
#ifndef FUZZ_ENCODER
#define FUZZ_ENCODER FUZZ_ENCODER_STRING_LITERAL_X(FUZZ_IMAGEMAGICK_ENCODER)
#endif
-#define FUZZ_IMAGEMAGICK_ENCODER_WRITE 1
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
const Magick::Blob blob(Data, Size);
for (std::list<Magick::CoderInfo>::iterator it = coderList.begin(); it != coderList.end(); it++)
{
- //std::cout << ((*it).isWritable() ? "+" : "-") << (*it).name() << std::endl;
- std::cout << (*it).name() << std::endl;
+ std::cout << ((*it).isWritable() ? "+" : "-") << (*it).name() << std::endl;
}
}