Do not use tmpfile to run script anymore (Closes: #149270)
From RedHat patches.

Index: logrotate-3.7.1/logrotate.c
===================================================================
--- logrotate-3.7.1.orig/logrotate.c	2006-04-08 20:38:58.314755223 +0100
+++ logrotate-3.7.1/logrotate.c	2006-04-08 20:42:11.628324134 +0100
@@ -88,10 +88,7 @@
 }
 
 static int runScript(char * logfn, char * script) {
-    int fd;
-    char *filespec;
     int rc;
-    char buf[256];
 
     if (debug) {
 	message(MESS_DEBUG, "running script with arg %s: \"%s\"\n", 
@@ -99,38 +96,12 @@
 	return 0;
     }
 
-    filespec = buf;
-    snprintf(buf, sizeof(buf), "%s/logrotate.XXXXXX", getenv("TMPDIR") ?: "/tmp");
-    fd = -1;
-    if (!filespec || (fd = mkstemp(filespec)) < 0 || fchmod(fd, 0700)) {
-	message(MESS_DEBUG, "error creating %s: %s\n", filespec,
-		strerror(errno));
-	if (fd >= 0) {
-	    close(fd);
-	    unlink(filespec);
-	}
-	return -1;
-    }
-
-    if (write(fd, "#!/bin/sh\n\n", 11) != 11 ||
-	write(fd, script, strlen(script)) != strlen(script)) {
-	message(MESS_DEBUG, "error writing %s\n", filespec);
-	close(fd);
-	unlink(filespec);
-	return -1;
-    }
-
-    close(fd);
-
     if (!fork()) {
-	execlp(filespec, filespec, logfn, NULL);
+	execl("/bin/sh", "sh", "-c", script, NULL);
 	exit(1);
     }
 
     wait(&rc);
-
-    unlink(filespec);
-
     return rc;
 }
 


syntax highlighted by Code2HTML, v. 0.9.1