mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-12-29 19:49:53 +02:00
687d0b8c9f
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@3243 3c298f89-4303-0410-b956-a3cf2f4a3e73
55 lines
1.2 KiB
Diff
55 lines
1.2 KiB
Diff
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;
|
|
}
|
|
|