]> granicus.if.org Git - imagemagick/commitdiff
When the offset is near the start we first search a bit further in the stream.
authorDirk Lemstra <dirk@lemstra.org>
Tue, 23 Oct 2018 17:20:32 +0000 (19:20 +0200)
committerDirk Lemstra <dirk@lemstra.org>
Tue, 23 Oct 2018 17:20:32 +0000 (19:20 +0200)
MagickCore/magic.c

index 15e946f2ba1947e31f83e532663f862c3f9b8480..7dfa1cc49c1641706962f7c85dd784907e41e1dd 100644 (file)
@@ -167,7 +167,20 @@ static int CompareMagickInfoSize(const void *a,const void *b)
   ma=(MagicInfo *) a;
   mb=(MagicInfo *) b;
   if (ma->offset != mb->offset)
-    return((int) (ma->offset-mb->offset));
+    {
+      MagickOffsetType
+        max_offset;
+
+      /*
+        When the offset is near the start we first search a bit further
+        in the stream.
+      */
+      max_offset=ma->offset > mb->offset ? ma->offset : mb->offset;
+      if (max_offset <= 10)
+        return((int) (mb->offset-ma->offset));
+      else
+        return((int) (ma->offset-mb->offset));
+    }
   return((int) (mb->length-ma->length));
 }