summaryrefslogtreecommitdiffstats
path: root/ctdb/server/ctdb_logging.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2009-12-17 13:03:42 +0100
committerStefan Metzmacher <metze@samba.org>2009-12-17 13:05:39 +0100
commitbbfa4402e4e1a258281e396cb23aa68b697a6b2f (patch)
treee8fb22eeb87a70934bf5cc0695e8a4cddf932a2b /ctdb/server/ctdb_logging.c
parent9b507abd6e0daebde5cf24f174b419973c4f0a67 (diff)
downloadsamba-bbfa4402e4e1a258281e396cb23aa68b697a6b2f.tar.gz
samba-bbfa4402e4e1a258281e396cb23aa68b697a6b2f.tar.xz
samba-bbfa4402e4e1a258281e396cb23aa68b697a6b2f.zip
server: fix fd leaks in the new logging code
metze (This used to be ctdb commit 140070dd81b39545fe2d56f70e9b9c96bfdae07f)
Diffstat (limited to 'ctdb/server/ctdb_logging.c')
-rw-r--r--ctdb/server/ctdb_logging.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/ctdb/server/ctdb_logging.c b/ctdb/server/ctdb_logging.c
index de258658716..b97f0ef5682 100644
--- a/ctdb/server/ctdb_logging.c
+++ b/ctdb/server/ctdb_logging.c
@@ -479,8 +479,10 @@ struct ctdb_log_state *ctdb_fork_with_logging(TALLOC_CTX *mem_ctx,
}
log->pfd = p[0];
+ set_close_on_exec(log->pfd);
talloc_set_destructor(log, log_context_destructor);
- event_add_fd(ctdb->ev, log, log->pfd, EVENT_FD_READ,
+ event_add_fd(ctdb->ev, log, log->pfd,
+ EVENT_FD_READ | EVENT_FD_AUTOCLOSE,
ctdb_log_handler, log);
return log;
@@ -511,7 +513,8 @@ int ctdb_set_child_logging(struct ctdb_context *ctdb)
return -1;
}
- event_add_fd(ctdb->ev, ctdb->log, p[0], EVENT_FD_READ,
+ event_add_fd(ctdb->ev, ctdb->log, p[0],
+ EVENT_FD_READ | EVENT_FD_AUTOCLOSE,
ctdb_log_handler, ctdb->log);
set_close_on_exec(p[0]);
ctdb->log->pfd = p[0];