From: Cristy Date: Tue, 29 Aug 2017 14:11:49 +0000 (-0400) Subject: ... X-Git-Tag: 7.0.7-0~42 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ba7dacbe536585121ee4754e4d3fcad3cd0df421;p=imagemagick ... --- diff --git a/MagickCore/utility.c b/MagickCore/utility.c index 64b74ce66..1306ecc4c 100644 --- a/MagickCore/utility.c +++ b/MagickCore/utility.c @@ -157,6 +157,9 @@ MagickExport MagickBooleanType AcquireUniqueSymbolicLink(const char *source, destination_file, source_file; + MagickBooleanType + status; + size_t length, quantum; @@ -227,6 +230,7 @@ MagickExport MagickBooleanType AcquireUniqueSymbolicLink(const char *source, (void) RelinquishUniqueFileResource(destination); return(MagickFalse); } + status=MagickTrue; for (length=0; ; ) { count=(ssize_t) read(source_file,buffer,quantum); @@ -236,17 +240,15 @@ MagickExport MagickBooleanType AcquireUniqueSymbolicLink(const char *source, count=(ssize_t) write(destination_file,buffer,length); if ((size_t) count != length) { - (void) close(destination_file); - (void) close(source_file); - buffer=(unsigned char *) RelinquishMagickMemory(buffer); (void) RelinquishUniqueFileResource(destination); - return(MagickFalse); + status=MagickFalse; + break; } } (void) close(destination_file); (void) close(source_file); buffer=(unsigned char *) RelinquishMagickMemory(buffer); - return(MagickTrue); + return(status); } /* @@ -1889,7 +1891,7 @@ MagickPrivate MagickBooleanType ShredFile(const char *path) if (i == 0) ResetStringInfo(key); /* zero on first pass */ count=write(file,GetStringInfoDatum(key),(size_t) - MagickMin(quantum,length-j)); + MagickMin((MagickSizeType) quantum,length-j)); key=DestroyStringInfo(key); if (count <= 0) {