From 9f7884ca8864a6a7d99d9618abae263ce8b5a4a5 Mon Sep 17 00:00:00 2001 From: Cristy Date: Thu, 4 Nov 2021 11:31:44 -0400 Subject: [PATCH] ... --- coders/msl.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/coders/msl.c b/coders/msl.c index 1711e089ecf..e374ce8aa5d 100644 --- a/coders/msl.c +++ b/coders/msl.c @@ -7393,19 +7393,21 @@ static void MSLEndElement(void *context,const xmlChar *tag) { if (LocaleCompare((const char *) tag, "group") == 0 ) { - if (msl_info->group_info[msl_info->number_groups-1].numImages > 0 ) + if ((msl_info->number_groups > 0) && + (msl_info->group_info[msl_info->number_groups-1].numImages > 0)) { ssize_t i = (ssize_t) (msl_info->group_info[msl_info->number_groups-1].numImages); - while ( i-- ) + + while ((i--) && (msl_info->n > 0)) { if (msl_info->image[msl_info->n] != (Image *) NULL) msl_info->image[msl_info->n]=DestroyImage( msl_info->image[msl_info->n]); msl_info->attributes[msl_info->n]=DestroyImage( - msl_info->attributes[msl_info->n]); + msl_info->attributes[msl_info->n]); msl_info->image_info[msl_info->n]=DestroyImageInfo( - msl_info->image_info[msl_info->n]); + msl_info->image_info[msl_info->n]); msl_info->n--; } } @@ -7418,7 +7420,7 @@ static void MSLEndElement(void *context,const xmlChar *tag) { if (LocaleCompare((const char *) tag, "image") == 0) MSLPopImage(msl_info); - break; + break; } case 'L': case 'l':