]> granicus.if.org Git - imagemagick/blobdiff - MagickCore/random.c
(no commit message)
[imagemagick] / MagickCore / random.c
index f41dae7e2cc54d61a5c55a3fc91650f131b70fad..416f9efca14878c23c826707fa505a7c3c112935 100644 (file)
@@ -450,23 +450,22 @@ static StringInfo *GenerateEntropicChaos(RandomInfo *random_info)
 #if defined(MAGICKCORE_HAVE_MKSTEMP)
   {
     char
-      *filename;
+      path[MaxTextExtent];
 
     int
       file;
 
-    filename=ConstantString("magickXXXXXX");
-    file=mkstemp(filename);
+    (void) GetPathTemplate(path);
+    file=mkstemp(path);
 #if defined(__OS2__)
     setmode(file,O_BINARY);
 #endif
     if (file != -1)
       (void) close(file);
-    (void) remove_utf8(filename);
-    SetStringInfoLength(chaos,strlen(filename));
-    SetStringInfoDatum(chaos,(unsigned char *) filename);
+    (void) remove_utf8(path);
+    SetStringInfoLength(chaos,strlen(path));
+    SetStringInfoDatum(chaos,(unsigned char *) path);
     ConcatenateStringInfo(entropy,chaos);
-    filename=DestroyString(filename);
   }
 #endif
 #if defined(MAGICKCORE_WINDOWS_SUPPORT)
@@ -739,7 +738,8 @@ MagickExport double GetRandomValue(RandomInfo *random_info)
 */
 MagickPrivate MagickBooleanType RandomComponentGenesis(void)
 {
-  random_semaphore=AcquireSemaphoreInfo();
+  if (random_semaphore == (SemaphoreInfo *) NULL)
+    random_semaphore=AcquireSemaphoreInfo();
   return(MagickTrue);
 }
 \f