From 7dfa1250265017223e36c72713a7521421b4d27c Mon Sep 17 00:00:00 2001 From: James Youngman Date: Mon, 29 Mar 2010 12:30:23 +0200 Subject: [PATCH] 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. --- ChangeLog | 7 +++++++ lib/save-cwd.c | 2 ++ modules/save-cwd | 1 + 3 files changed, 10 insertions(+) diff --git a/ChangeLog b/ChangeLog index b863db0d9..b6f1dc11e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2010-03-28 James Youngman + + 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 Remove vestiges of fts-lgpl module. diff --git a/lib/save-cwd.c b/lib/save-cwd.c index 7394d50ac..cf43a3550 100644 --- 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 @@ save_cwd (struct saved_cwd *cwd) return cwd->name ? 0 : -1; } + set_cloexec_flag (cwd->desc, true); return 0; } diff --git a/modules/save-cwd b/modules/save-cwd index 46a1276ab..aab5e5ef4 100644 --- a/modules/save-cwd +++ b/modules/save-cwd @@ -8,6 +8,7 @@ m4/save-cwd.m4 Depends-on: chdir-long +cloexec stdbool unistd-safer xgetcwd -- 2.11.0