Commit dd198f960 for imagemagick.org
commit dd198f960a586126dad3bb1699b1067c260f53fb
Author: Dirk Lemstra <dirk@lemstra.org>
Date: Mon May 18 17:37:29 2026 +0200
Make sure we free the chunk when hitting max loop.
diff --git a/coders/png.c b/coders/png.c
index 9d0c94278..9662a4793 100644
--- a/coders/png.c
+++ b/coders/png.c
@@ -5840,7 +5840,10 @@ static Image *ReadOneMNGImage(MngReadInfo* mng_info,
{
ssize_t loop_iters=1;
if (number_loop_ops++ > MNG_MAX_LOOP_OPS)
- ThrowReaderException(ResourceLimitError,"too many LOOP/ENDL ops");
+ {
+ chunk=(unsigned char *) RelinquishMagickMemory(chunk);
+ ThrowReaderException(ResourceLimitError,"too many LOOP/ENDL ops");
+ }
if (length > 4)
{
loop_level=chunk[0];
@@ -5877,7 +5880,10 @@ static Image *ReadOneMNGImage(MngReadInfo* mng_info,
if (memcmp(type,mng_ENDL,4) == 0)
{
if (number_loop_ops++ > MNG_MAX_LOOP_OPS)
- ThrowReaderException(ResourceLimitError,"too many LOOP/ENDL ops");
+ {
+ chunk=(unsigned char *) RelinquishMagickMemory(chunk);
+ ThrowReaderException(ResourceLimitError,"too many LOOP/ENDL ops");
+ }
if (length > 0)
{
loop_level=chunk[0];