From: cristy Date: Fri, 19 Jun 2015 18:38:04 +0000 (+0000) Subject: Respect resource limits. X-Git-Tag: 7.0.1-0~887 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=313812608335d107084f301c47c8311bfd3f91d0;p=imagemagick Respect resource limits. --- diff --git a/coders/avs.c b/coders/avs.c index a2466e6f1..0deb5aa88 100644 --- a/coders/avs.c +++ b/coders/avs.c @@ -100,6 +100,9 @@ static Image *ReadAVSImage(const ImageInfo *image_info,ExceptionInfo *exception) MagickBooleanType status; + MemoryInfo + *pixel_info; + register Quantum *q; @@ -161,10 +164,10 @@ static Image *ReadAVSImage(const ImageInfo *image_info,ExceptionInfo *exception) status=SetImageExtent(image,image->columns,image->rows,exception); if (status == MagickFalse) return(DestroyImageList(image)); - pixels=(unsigned char *) AcquireQuantumMemory(image->columns, - 4*sizeof(*pixels)); - if (pixels == (unsigned char *) NULL) + pixel_info=AcquireVirtualMemory(image->columns,4*sizeof(*pixels)); + if (pixel_info == (MemoryInfo *) NULL) ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); + pixels=(unsigned char *) GetVirtualMemoryBlob(pixel_info); length=(size_t) 4*image->columns; for (y=0; y < (ssize_t) image->rows; y++) { @@ -195,7 +198,7 @@ static Image *ReadAVSImage(const ImageInfo *image_info,ExceptionInfo *exception) break; } } - pixels=(unsigned char *) RelinquishMagickMemory(pixels); + pixel_info=RelinquishVirtualMemory(pixel_info); if (EOFBlob(image) != MagickFalse) { ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", @@ -326,6 +329,9 @@ static MagickBooleanType WriteAVSImage(const ImageInfo *image_info,Image *image, MagickOffsetType scene; + MemoryInfo + *pixel_info; + register const Quantum *restrict p; @@ -368,10 +374,10 @@ static MagickBooleanType WriteAVSImage(const ImageInfo *image_info,Image *image, /* Allocate memory for pixels. */ - pixels=(unsigned char *) AcquireQuantumMemory(image->columns, - 4*sizeof(*pixels)); - if (pixels == (unsigned char *) NULL) + pixel_info=AcquireVirtualMemory(image->columns,4*sizeof(*pixels)); + if (pixel_info == (MemoryInfo *) NULL) ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed"); + pixels=(unsigned char *) GetVirtualMemoryBlob(pixel_info); /* Convert MIFF to AVS raster pixels. */ @@ -401,7 +407,7 @@ static MagickBooleanType WriteAVSImage(const ImageInfo *image_info,Image *image, break; } } - pixels=(unsigned char *) RelinquishMagickMemory(pixels); + pixel_info=RelinquishVirtualMemory(pixel_info); if (GetNextImageInList(image) == (Image *) NULL) break; image=SyncNextImageInList(image);