diff --git a/src/fd_control.c b/src/fd_control.c index 6630307d5a1e037c828cebc005a5f3253ffdcb03..dc76a178a2eb0925e57d44db18624db7b5b2b53b 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)