From 77ca77459f8c120861f2c55a066910883c8f443a Mon Sep 17 00:00:00 2001 From: cristy Date: Sat, 26 Jan 2013 02:49:22 +0000 Subject: [PATCH] --- MagickCore/cache.c | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/MagickCore/cache.c b/MagickCore/cache.c index 8db2469a3..66e9f672c 100644 --- a/MagickCore/cache.c +++ b/MagickCore/cache.c @@ -4246,7 +4246,14 @@ static MagickBooleanType ReadPixelCacheMetacontent(CacheInfo *cache_info, */ LockSemaphoreInfo(cache_info->file_semaphore); region=nexus_info->region; - region.height=1UL; + if ((cache_info->columns != nexus_info->region.width) || + (extent > MagickMaxBufferExtent)) + region.height=1UL; + else + { + length=extent; + rows=1UL; + } for (y=0; y < (ssize_t) rows; y++) { count=ReadDistributePixelCachePixels(cache_info->server_info,®ion, @@ -4404,7 +4411,14 @@ static MagickBooleanType ReadPixelCachePixels(CacheInfo *cache_info, */ LockSemaphoreInfo(cache_info->file_semaphore); region=nexus_info->region; - region.height=1UL; + if ((cache_info->columns != nexus_info->region.width) || + (extent > MagickMaxBufferExtent)) + region.height=1UL; + else + { + length=extent; + rows=1UL; + } for (y=0; y < (ssize_t) rows; y++) { count=ReadDistributePixelCachePixels(cache_info->server_info,®ion, @@ -5185,7 +5199,14 @@ static MagickBooleanType WritePixelCacheMetacontent(CacheInfo *cache_info, */ LockSemaphoreInfo(cache_info->file_semaphore); region=nexus_info->region; - region.height=1UL; + if ((cache_info->columns != nexus_info->region.width) || + (extent > MagickMaxBufferExtent)) + region.height=1UL; + else + { + length=extent; + rows=1UL; + } for (y=0; y < (ssize_t) rows; y++) { count=WriteDistributePixelCachePixels(cache_info->server_info,®ion, @@ -5344,7 +5365,14 @@ static MagickBooleanType WritePixelCachePixels(CacheInfo *cache_info, */ LockSemaphoreInfo(cache_info->file_semaphore); region=nexus_info->region; - region.height=1UL; + if ((cache_info->columns != nexus_info->region.width) || + (extent > MagickMaxBufferExtent)) + region.height=1UL; + else + { + length=extent; + rows=1UL; + } for (y=0; y < (ssize_t) rows; y++) { count=WriteDistributePixelCachePixels(cache_info->server_info,®ion, -- 2.40.0