changeset 13092:74c620262658

save-cwd: don't leak a file descriptor when the caller execs * lib/save-cwd.c (save_cwd): set the close-on-exec flag for the saved file descriptor. * modules/save-cwd (Depends-on): Depend on cloexec.
author James Youngman <jay@gnu.org>
date Mon, 29 Mar 2010 12:30:23 +0200
parents 3af48780d248
children c49b5e91ec30
files ChangeLog lib/save-cwd.c modules/save-cwd
diffstat 3 files changed, 10 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2010-03-28  James Youngman  <jay@gnu.org>
+
+	save-cwd: don't leak a file descriptor when the caller execs.
+	* lib/save-cwd.c (save_cwd): set the close-on-exec flag for the
+	saved file descriptor.
+	* modules/save-cwd (Depends-on): Depend on cloexec.
+
 2010-03-29  Bruno Haible  <bruno@clisp.org>
 
 	Remove vestiges of fts-lgpl module.
--- a/lib/save-cwd.c
+++ b/lib/save-cwd.c
@@ -31,6 +31,7 @@
 #include "chdir-long.h"
 #include "unistd--.h"
 #include "xgetcwd.h"
+#include "cloexec.h"
 
 #if GNULIB_FCNTL_SAFER
 # include "fcntl--.h"
@@ -84,6 +85,7 @@
       return cwd->name ? 0 : -1;
     }
 
+  set_cloexec_flag (cwd->desc, true);
   return 0;
 }
 
--- a/modules/save-cwd
+++ b/modules/save-cwd
@@ -8,6 +8,7 @@
 
 Depends-on:
 chdir-long
+cloexec
 stdbool
 unistd-safer
 xgetcwd