...
diff --git a/coders/raw.c b/coders/raw.c
index b91282b..43cafa8 100644
--- a/coders/raw.c
+++ b/coders/raw.c
@@ -178,6 +178,7 @@
   scene=0;
   count=0;
   length=0;
+  status=MagickTrue;
   do
   {
     /*
@@ -208,6 +209,7 @@
 
       if (count != (ssize_t) length)
         {
+          status=MagickFalse;
           ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
             image->filename);
           break;
@@ -278,6 +280,8 @@
   quantum_info=DestroyQuantumInfo(quantum_info);
   canvas_image=DestroyImage(canvas_image);
   (void) CloseBlob(image);
+  if (status == MagickFalse)
+    return(DestroyImageList(image));
   return(GetFirstImageInList(image));
 }