]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sat, 26 Jan 2013 02:49:22 +0000 (02:49 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sat, 26 Jan 2013 02:49:22 +0000 (02:49 +0000)
MagickCore/cache.c

index 8db2469a39e346fcbb42093cc93f7d8f9d0ecf2d..66e9f672ca61c86528aba6ffedbdbdd740219b07 100644 (file)
@@ -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,&region,
@@ -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,&region,
@@ -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,&region,
@@ -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,&region,