From 16d9c1ae7278870d838bdffe24e1748fb08fe6f1 Mon Sep 17 00:00:00 2001 From: cristy Date: Sun, 14 Dec 2014 15:28:39 +0000 Subject: [PATCH] --- MagickCore/quantum.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/MagickCore/quantum.c b/MagickCore/quantum.c index d5fffa456..94d6151fe 100644 --- a/MagickCore/quantum.c +++ b/MagickCore/quantum.c @@ -46,6 +46,7 @@ #include "MagickCore/exception.h" #include "MagickCore/exception-private.h" #include "MagickCore/cache.h" +#include "MagickCore/cache-private.h" #include "MagickCore/constitute.h" #include "MagickCore/delegate.h" #include "MagickCore/geometry.h" @@ -112,6 +113,8 @@ MagickExport QuantumInfo *AcquireQuantumInfo(const ImageInfo *image_info, QuantumInfo *quantum_info; + if (SyncImagePixelCache(image,&image->exception) == MagickFalse) + return(MagickFalse); quantum_info=(QuantumInfo *) AcquireMagickMemory(sizeof(*quantum_info)); if (quantum_info == (QuantumInfo *) NULL) ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed"); @@ -137,7 +140,7 @@ MagickExport QuantumInfo *AcquireQuantumInfo(const ImageInfo *image_info, % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% AcquireQuantumPixels() allocates the unsigned char structure. +% AcquireQuantumPixels() allocates the pixel staging areas. % % The format of the AcquireQuantumPixels method is: % @@ -172,7 +175,12 @@ static MagickBooleanType AcquireQuantumPixels(QuantumInfo *quantum_info, quantum_info->pixels[i]=(unsigned char *) AcquireQuantumMemory(extent+1, sizeof(**quantum_info->pixels)); if (quantum_info->pixels[i] == (unsigned char *) NULL) - return(MagickFalse); + { + while (--i >= 0) + quantum_info->pixels[i]=(unsigned char *) RelinquishMagickMemory( + quantum_info->pixels[i]); + return(MagickFalse); + } (void) ResetMagickMemory(quantum_info->pixels[i],0,(extent+1)* sizeof(**quantum_info->pixels)); quantum_info->pixels[i][extent]=QuantumSignature; -- 2.40.0