]> granicus.if.org Git - imagemagick/commitdiff
...
authorCristy <urban-warrior@imagemagick.org>
Mon, 20 Aug 2018 02:00:45 +0000 (22:00 -0400)
committerCristy <urban-warrior@imagemagick.org>
Mon, 20 Aug 2018 02:00:45 +0000 (22:00 -0400)
MagickCore/cache.c

index 9dfea71955c3fd61aa798f1aeb766e9f4853061c..c8b978ad54249e66e82e30ef2754f525633ffa90 100644 (file)
@@ -610,6 +610,9 @@ static MagickBooleanType ClonePixelCacheOnDisk(
   if ((OpenPixelCacheOnDisk(cache_info,ReadMode) == MagickFalse) ||
       (OpenPixelCacheOnDisk(clone_info,IOMode) == MagickFalse))
     return(MagickFalse);
+  if ((lseek(cache_info->file,0,SEEK_SET) < 0) ||
+      (lseek(clone_info->file,0,SEEK_SET) < 0))
+    return(MagickFalse);
   quantum=(size_t) MagickMaxBufferExtent;
   if ((fstat(cache_info->file,&file_stats) == 0) && (file_stats.st_size > 0))
     quantum=(size_t) MagickMin(file_stats.st_size,MagickMaxBufferExtent);
@@ -1741,12 +1744,8 @@ static Cache GetImagePixelCache(Image *image,const MagickBooleanType clone,
           else
             {
               if (clone != MagickFalse)
-                {
-                  if (cache_info->file != -1)
-                    (void) ClosePixelCacheOnDisk(cache_info);
-                  status=ClonePixelCacheRepository(clone_info,cache_info,
-                    exception);
-                }
+                status=ClonePixelCacheRepository(clone_info,cache_info,
+                  exception);
               if (status == MagickFalse)
                 clone_info=(CacheInfo *) DestroyPixelCache(clone_info);
               else