https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7158
authorCristy <urban-warrior@imagemagick.org>
Tue, 27 Mar 2018 23:44:25 +0000 (19:44 -0400)
committerCristy <urban-warrior@imagemagick.org>
Tue, 27 Mar 2018 23:44:25 +0000 (19:44 -0400)
coders/heic.c

index f8f337b9367e50e02c48d95b11382137a4205449..510a05ed15069088b45ff15c1a286f21d78eea69 100644 (file)
@@ -301,7 +301,8 @@ static MagickBooleanType ParseFullBox(Image *image, DataBuffer *db,
   }
 
   for (i = 0; i < MAX_ATOMS_IN_BOX && DBGetSize(db) > 0; i++) {
-    (void) ParseAtom(image, db, ctx, exception);
+    if (ParseAtom(image, db, ctx, exception) == MagickFalse)
+      return MagickFalse;
   }
 
   return MagickTrue;
@@ -314,7 +315,8 @@ static MagickBooleanType ParseBox(Image *image, DataBuffer *db,
     i;
 
   for (i = 0; i < MAX_ATOMS_IN_BOX && DBGetSize(db) > 0; i++) {
-    (void) ParseAtom(image, db, ctx, exception);
+    if (ParseAtom(image, db, ctx, exception) == MagickFalse)
+      break;
   }
 
   return MagickTrue;
@@ -493,7 +495,7 @@ static MagickBooleanType ParseInfeAtom(Image *image, DataBuffer *db,
   /*
      item indicies starts from 1
   */
-  if (id >= (ssize_t) ctx->idsCount) {
+  if (id > (ssize_t) ctx->idsCount) {
     ThrowAndReturn("item id is incorrect");
   }