From 0eb0a043d6ab9d83f7d9e0fc645d431688e7a0c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Sat, 20 May 2000 20:58:53 +0200 Subject: [PATCH] Added cleanup_close_on_exec(). Fixed a few bugs. Rev: src/fd_control.c:1.29 --- src/fd_control.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/fd_control.c b/src/fd_control.c index 6630307d5a..dc76a178a2 100644 --- a/src/fd_control.c +++ b/src/fd_control.c @@ -10,7 +10,7 @@ #include "error.h" #include "fdlib.h" -RCSID("$Id: fd_control.c,v 1.28 2000/05/20 02:21:47 per Exp $"); +RCSID("$Id: fd_control.c,v 1.29 2000/05/20 18:58:53 grubba Exp $"); #else /* TESTING */ @@ -154,7 +154,7 @@ static void grow_fds_to_close( ) if(!fds_to_close) fatal("Out of memory in fd_control::grow_fds_to_close()\n" "Tried to allocate %d fd_datum structs\n", fds_to_close_size); - MEMSET( fds+(fds_size/2), 0, fds_to_close_size*sizeof(int)/2 ); + MEMSET( fds+(fds_to_close_size/2), 0, fds_to_close_size*sizeof(int)/2 ); } void do_close_on_exec(void) @@ -165,6 +165,16 @@ void do_close_on_exec(void) } num_fds_to_close = 0; } + +void cleanup_close_on_exec(void) +{ + if (fds_to_close) { + free(fds_to_close); + fds_to_close = 0; + fds_to_close_size = 0; + num_fds_to_close = 0; + } +} #endif /* HAVE_BROKEN_F_SETFD */ int set_close_on_exec(int fd, int which) -- GitLab