diff options
author | Arthur de Jong <arthur@arthurdejong.org> | 2010-11-26 11:39:58 +0000 |
---|---|---|
committer | Arthur de Jong <arthur@arthurdejong.org> | 2010-11-26 11:39:58 +0000 |
commit | 87c64b545f9fe5bd15a9f254fb787634d9ea5f4f (patch) | |
tree | 7172c8c6dce3b2c9ed5ac9533959ef5d8f97e124 | |
parent | fea0ff28c0ab0a68fae5dafd780829cbf1965d89 (diff) |
close all open file descriptors on start
git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1316 ef36b2f9-881f-0410-afb5-c4e39611909c
-rw-r--r-- | nslcd/nslcd.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/nslcd/nslcd.c b/nslcd/nslcd.c index 83d4e95..8b36732 100644 --- a/nslcd/nslcd.c +++ b/nslcd/nslcd.c @@ -653,6 +653,14 @@ int main(int argc,char *argv[]) log_log(LOG_ERR,"daemon may already be active, cannot acquire lock (%s): %s",NSLCD_PIDFILE,strerror(errno)); exit(EXIT_FAILURE); } + /* close all file descriptors (except stdin/out/err) */ + i=sysconf(_SC_OPEN_MAX); + /* if the system does not have OPEN_MAX just close the first 32 and + hope we closed enough */ + if (i<0) + i=32; + for (;i>3;i--) + close(i); /* daemonize */ if ((!nslcd_debugging)&&(daemon(0,0)<0)) { |