Accepting request 151578 from Base:System
- fixed the file descriptor leak correctly (bnc#786096,bnc#802345) (forwarded request 151577 from msmeissn) OBS-URL: https://build.opensuse.org/request/show/151578 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/cronie?expand=0&rev=45
This commit is contained in:
commit
11c2a873d0
@ -1,25 +1,42 @@
|
|||||||
Index: cronie-1.4.8/src/do_command.c
|
|
||||||
===================================================================
|
|
||||||
--- cronie-1.4.8.orig/src/do_command.c
|
|
||||||
+++ cronie-1.4.8/src/do_command.c
|
|
||||||
@@ -69,6 +69,7 @@ static int child_process(entry * e, user
|
|
||||||
int stdin_pipe[2], stdout_pipe[2];
|
|
||||||
char *input_data, *usernm, *mailto, *mailfrom;
|
|
||||||
int children = 0;
|
|
||||||
+ int i = 3, open_max = -1;
|
|
||||||
pid_t pid = getpid();
|
|
||||||
struct sigaction sa;
|
|
||||||
|
|
||||||
@@ -154,6 +155,12 @@ static int child_process(entry * e, user
|
diff --git a/src/cron.c b/src/cron.c
|
||||||
*p = '\0';
|
index 7dc2958..69261c1 100644
|
||||||
|
--- a/src/cron.c
|
||||||
|
+++ b/src/cron.c
|
||||||
|
@@ -87,22 +87,21 @@ void set_cron_watched(int fd) {
|
||||||
|
for (i = 0; i < sizeof (wd) / sizeof (wd[0]); ++i) {
|
||||||
|
int w;
|
||||||
|
|
||||||
|
- if (open(watchpaths[i], O_RDONLY | O_NONBLOCK, 0) != -1) {
|
||||||
|
- w = inotify_add_watch(fd, watchpaths[i],
|
||||||
|
- IN_CREATE | IN_CLOSE_WRITE | IN_ATTRIB | IN_MODIFY | IN_MOVED_TO |
|
||||||
|
- IN_MOVED_FROM | IN_MOVE_SELF | IN_DELETE | IN_DELETE_SELF);
|
||||||
|
- if (w < 0) {
|
||||||
|
- if (wd[i] != -1) {
|
||||||
|
- log_it("CRON", pid, "This directory or file can't be watched",
|
||||||
|
- watchpaths[i], errno);
|
||||||
|
- log_it("CRON", pid, "INFO", "running without inotify support", 0);
|
||||||
|
- }
|
||||||
|
- inotify_enabled = 0;
|
||||||
|
- set_cron_unwatched(fd);
|
||||||
|
- return;
|
||||||
|
+ w = inotify_add_watch(fd, watchpaths[i],
|
||||||
|
+ IN_CREATE | IN_CLOSE_WRITE | IN_ATTRIB | IN_MODIFY | IN_MOVED_TO |
|
||||||
|
+ IN_MOVED_FROM | IN_MOVE_SELF | IN_DELETE | IN_DELETE_SELF);
|
||||||
|
+ if (w < 0) {
|
||||||
|
+ if (wd[i] != -1) {
|
||||||
|
+ log_it("CRON", pid, "This directory or file can't be watched",
|
||||||
|
+ watchpaths[i], errno);
|
||||||
|
+ log_it("CRON", pid, "INFO", "running without inotify support",
|
||||||
|
+ 0);
|
||||||
|
}
|
||||||
|
- wd[i] = w;
|
||||||
|
+ inotify_enabled = 0;
|
||||||
|
+ set_cron_unwatched(fd);
|
||||||
|
+ return;
|
||||||
|
}
|
||||||
|
+ wd[i] = w;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ open_max = sysconf(_SC_OPEN_MAX);
|
if (!inotify_enabled) {
|
||||||
+ if (open_max < 0)
|
|
||||||
+ open_max = 1024;
|
|
||||||
+ for (i = STDERR + 1; i < open_max; ++i)
|
|
||||||
+ close(i);
|
|
||||||
+
|
|
||||||
|
|
||||||
/* fork again, this time so we can exec the user's command.
|
|
||||||
*/
|
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Feb 7 12:19:58 UTC 2013 - meissner@suse.com
|
||||||
|
|
||||||
|
- fixed the file descriptor leak correctly (bnc#786096,bnc#802345)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Feb 4 14:20:48 UTC 2013 - fcrozat@suse.com
|
Mon Feb 4 14:20:48 UTC 2013 - fcrozat@suse.com
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user