patch file cleanup... ick.. kaloz you owe me some love
[openwrt/svn-archive/archive.git] / utils / logrotate / patches / 004-no_tmpdir.patch
1 diff -u -ruN logrotate-3.7.1-cur/logrotate.c logrotate-3.7.1/logrotate.c
2 --- logrotate-3.7.1-cur/logrotate.c 2005-05-25 18:20:41.000000000 -0400
3 +++ logrotate-3.7.1/logrotate.c 2005-05-25 18:21:10.000000000 -0400
4 @@ -90,10 +90,7 @@
5 }
6
7 static int runScript(char * logfn, char * script) {
8 - int fd;
9 - char *filespec;
10 int rc;
11 - char buf[256];
12
13 if (debug) {
14 message(MESS_DEBUG, "running script with arg %s: \"%s\"\n",
15 @@ -101,38 +98,12 @@
16 return 0;
17 }
18
19 - filespec = buf;
20 - snprintf(buf, sizeof(buf), "%s/logrotate.XXXXXX", getenv("TMPDIR") ?: "/tmp");
21 - fd = -1;
22 - if (!filespec || (fd = mkstemp(filespec)) < 0 || fchmod(fd, 0700)) {
23 - message(MESS_DEBUG, "error creating %s: %s\n", filespec,
24 - strerror(errno));
25 - if (fd >= 0) {
26 - close(fd);
27 - unlink(filespec);
28 - }
29 - return -1;
30 - }
31 -
32 - if (write(fd, "#!/bin/sh\n\n", 11) != 11 ||
33 - write(fd, script, strlen(script)) != strlen(script)) {
34 - message(MESS_DEBUG, "error writing %s\n", filespec);
35 - close(fd);
36 - unlink(filespec);
37 - return -1;
38 - }
39 -
40 - close(fd);
41 -
42 if (!fork()) {
43 - execlp(filespec, filespec, logfn, NULL);
44 + execl("/bin/sh", "sh", "-c", script, NULL);
45 exit(1);
46 }
47
48 wait(&rc);
49 -
50 - unlink(filespec);
51 -
52 return rc;
53 }
54