Magellan Linux

Annotation of /trunk/logrotate/patches/logrotate-3.7.1-no-tmpdir.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 153 - (hide annotations) (download)
Tue May 8 20:52:56 2007 UTC (17 years, 1 month ago) by niro
File size: 1266 byte(s)
-import

1 niro 153 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