--- runjob.c.orig	Thu Jun 16 17:04:19 2005
+++ runjob.c	Thu Jun 16 17:10:48 2005
@@ -39,26 +39,14 @@
 temp_file()
 /* Open a temporary file and return its file descriptor */
 {
-    const int max_retries = 50;
-    char *name;
-    int fd, i;
+    int fd;
+    char name[] = "/tmp/anacron.XXXXXX";
+
+    fd = mkstemp(name);
 
-    i = 0;
-    name = NULL;
-    do
-    {
-	i++;
-	free(name);
-	name = tempnam(NULL, NULL);
-	if (name == NULL) die("Can't find a unique temporary filename");
-	fd = open(name, O_RDWR | O_CREAT | O_EXCL | O_APPEND,
-		  S_IRUSR | S_IWUSR);
-	/* I'm not sure we actually need to be so persistent here */
-    } while (fd == -1 && errno == EEXIST && i < max_retries);
-    
     if (fd == -1) die_e("Can't open temporary file");
     if (unlink(name)) die_e("Can't unlink temporary file");
-    free(name);
+
     fcntl(fd, F_SETFD, 1);    /* set close-on-exec flag */
     return fd;
 }


syntax highlighted by Code2HTML, v. 0.9.1