summaryrefslogtreecommitdiff
path: root/libmailutils/server/acl.c
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2020-11-30 18:49:48 +0200
committerSergey Poznyakoff <gray@gnu.org>2020-11-30 18:49:48 +0200
commit23404fbf27b67bd1767998918548aee3235f201c (patch)
treed3557c6336910a53f9f8dc83568195e383d10b4d /libmailutils/server/acl.c
parent42e0f735b48ab0f05e80eeec335684b25a93c4a3 (diff)
downloadmailutils-23404fbf27b67bd1767998918548aee3235f201c.tar.gz
mailutils-23404fbf27b67bd1767998918548aee3235f201c.tar.bz2
New functions for closing all fds and daemonizing
* configure.ac: Select a suitable interface for closing all file descriptors greater than or equal to a chosen one. * include/mailutils/daemon.h (mu_daemon): New proto. * include/mailutils/util.h (mu_close_fds): New proto. * lib/daemon.c: Removed. * lib/Makefile.am: Remove daemon.c * libmailutils/base/Makefile.am: Add closefds.c * libmailutils/base/closefds.c: New file. * libmailutils/base/daemon.c: Rename to libmailutils/base/pidfile.c * libmailutils/base/daemon.c: New file. * libmailutils/diag/bt.c: Use mu_close_fds. * libmailutils/server/acl.c: Likewise. * mh/mh_whatnow.c: Likewise. * libmailutils/stream/prog_stream.c: Likewise. * libmailutils/server/msrv.c: Use mu_daemon. * mh/send.c: Likewise. * mda/lib/util.c (mda_close_fds): Remove.
Diffstat (limited to 'libmailutils/server/acl.c')
-rw-r--r--libmailutils/server/acl.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/libmailutils/server/acl.c b/libmailutils/server/acl.c
index f209d6929..5f71d2bce 100644
--- a/libmailutils/server/acl.c
+++ b/libmailutils/server/acl.c
@@ -410,7 +410,6 @@ spawn_prog (const char *cmdline, int *pstatus, struct run_closure *rp)
pid = fork ();
if (pid == 0)
{
- int i;
struct mu_wordsplit ws;
if (mu_wordsplit (s, &ws, MU_WRDSF_DEFFLAGS))
@@ -419,9 +418,9 @@ spawn_prog (const char *cmdline, int *pstatus, struct run_closure *rp)
mu_wordsplit_strerror (&ws));
_exit (127);
}
-
- for (i = mu_getmaxfd (); i > 2; i--)
- close (i);
+
+ mu_close_fds (3);
+
execvp (ws.ws_wordv[0], ws.ws_wordv);
_exit (127);
}

Return to:

Send suggestions and report system problems to the System administrator.