From bd7d023f39b048140221a0fb293eadedc8fa071e Mon Sep 17 00:00:00 2001 From: Stef Walter Date: Sun, 19 Sep 2004 00:21:28 +0000 Subject: Close file descriptors on exec --- common/smtppass.c | 2 ++ common/spio.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/common/smtppass.c b/common/smtppass.c index 2604a85..25522de 100644 --- a/common/smtppass.c +++ b/common/smtppass.c @@ -275,6 +275,7 @@ int sp_run(const char* configfile, const char* pidfile, int dbg_level) exit(1); } + fcntl(sock, F_SETFD, fcntl(sock, F_GETFD, 0) | FD_CLOEXEC); setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void *)&true, sizeof(true)); /* Unlink the socket file if it exists */ @@ -1173,6 +1174,7 @@ int sp_write_data(spctx_t* ctx, const char* buf, int len) return -1; } + fcntl(tfd, F_SETFD, fcntl(tfd, F_GETFD, 0) | FD_CLOEXEC); sp_messagex(ctx, LOG_DEBUG, "created cache file: %s", ctx->cachename); } diff --git a/common/spio.c b/common/spio.c index 8cd315b..91e2da0 100644 --- a/common/spio.c +++ b/common/spio.c @@ -125,6 +125,8 @@ int spio_connect(spctx_t* ctx, spio_t* io, const struct sockaddr_any* sany, setsockopt(io->fd, SOL_SOCKET, SO_SNDTIMEO, &(g_state.timeout), sizeof(g_state.timeout)) == -1) sp_messagex(ctx, LOG_WARNING, "couldn't set timeouts on connection"); + fcntl(io->fd, F_SETFD, fcntl(io->fd, F_GETFD, 0) | FD_CLOEXEC); + if(connect(io->fd, &SANY_ADDR(*sany), SANY_LEN(*sany)) == -1) RETURN(-1); -- cgit v1.2.3