summaryrefslogtreecommitdiffstats
path: root/package/logrotate/patches/logrotate-3.7.1-no-tmpdir.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/logrotate/patches/logrotate-3.7.1-no-tmpdir.patch')
-rw-r--r--package/logrotate/patches/logrotate-3.7.1-no-tmpdir.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/package/logrotate/patches/logrotate-3.7.1-no-tmpdir.patch b/package/logrotate/patches/logrotate-3.7.1-no-tmpdir.patch
new file mode 100644
index 000000000..fb95f1ee3
--- /dev/null
+++ b/package/logrotate/patches/logrotate-3.7.1-no-tmpdir.patch
@@ -0,0 +1,54 @@
+diff -u -ruN logrotate-3.7.1-cur/logrotate.c logrotate-3.7.1/logrotate.c
+--- logrotate-3.7.1-cur/logrotate.c 2005-05-25 18:20:41.000000000 -0400
++++ logrotate-3.7.1/logrotate.c 2005-05-25 18:21:10.000000000 -0400
+@@ -90,10 +90,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",
+@@ -101,38 +98,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;
+ }
+