]> granicus.if.org Git - imagemagick/commitdiff
Fixed implementation of huffman_decode_fuzzer.
authorDirk Lemstra <dirk@git.imagemagick.org>
Sun, 14 Jan 2018 00:46:14 +0000 (01:46 +0100)
committerDirk Lemstra <dirk@git.imagemagick.org>
Sun, 14 Jan 2018 00:46:14 +0000 (01:46 +0100)
Magick++/fuzz/huffman_decode_fuzzer.cc

index bf2d9e854bfa52ff9ef31a9eba1465c0a7901959..c4598f2a91d474c59a1c40702976d3a016d42ee4 100644 (file)
@@ -1,19 +1,21 @@
 #include <cstdint>
 
-#include <Magick++/Blob.h>
 #include <Magick++/Image.h>
 
 #include "utils.cc"
 
+namespace MagickCore
+{
+  extern "C" void AttachBlob(BlobInfo *,const void *,const size_t);
+}
+
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
-  const Magick::Blob blob(Data, Size);
   Magick::Image image;
-  try {
-    image.read(blob);
-  } catch (Magick::Exception &e) {
-    return 0;
-  }
-  Magick::ExceptionInfo ex;
-  auto res = HuffmanDecodeImage(image.image(), &ex);
+  MagickCore::AttachBlob(image.image()->blob,(const void *) Data,Size);
+
+  Magick::ExceptionInfo *exceptionInfo;
+  exceptionInfo=MagickCore::AcquireExceptionInfo();
+  (void) HuffmanDecodeImage(image.image(), exceptionInfo);
+  (void) MagickCore::DestroyExceptionInfo(exceptionInfo);
   return 0;
 }