let ipkg fail when a package file to be installed is not found
[openwrt.git] / openwrt / package / logrotate / patches / logrotate-3.7.1-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