From: Alex Gaynor Date: Fri, 19 Jan 2018 13:32:41 +0000 (-0500) Subject: Handle the null encoder properly in the encoder fuzz X-Git-Tag: 7.0.7-22~32 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6a87880cb590e05d6dd7492141503447dd894a17;p=imagemagick Handle the null encoder properly in the encoder fuzz Credit OSS-Fuzz --- diff --git a/Magick++/fuzz/encoder_fuzzer.cc b/Magick++/fuzz/encoder_fuzzer.cc index dd3875bd6..75963df96 100644 --- a/Magick++/fuzz/encoder_fuzzer.cc +++ b/Magick++/fuzz/encoder_fuzzer.cc @@ -12,10 +12,17 @@ #endif extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { + std::string encoder = FUZZ_ENCODER; + // Due to macro foolishness, if we pass -DFUZZ_IMAGEMAGICK_ENCODER=NULL, + // FUZZ_ENCODER ends up being "__null". + if (encoder == "__null") { + encoder = "NULL"; + } + const Magick::Blob blob(Data, Size); Magick::Image image; - image.magick(FUZZ_ENCODER); - image.fileName(std::string(FUZZ_ENCODER) + ":"); + image.magick(encoder); + image.fileName(std::string(encoder) + ":"); try { image.read(blob); } @@ -27,7 +34,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { Magick::Blob outBlob; try { - image.write(&outBlob, FUZZ_ENCODER); + image.write(&outBlob, encoder); } catch (Magick::Exception &e) { }