about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2010-02-10 20:31:48 -0800
committerPetr Baudis <pasky@ucw.cz>2010-05-12 01:56:33 +0200
commit69ad8afe74aa5a0aa727553e010ad0dded7721dd (patch)
tree80d227842f59cff1d944f7e7b732fb34d96f8391
parentc648b3046e619146357f706a1d0ccced601e039f (diff)
downloadglibc-69ad8afe74aa5a0aa727553e010ad0dded7721dd.tar.gz
glibc-69ad8afe74aa5a0aa727553e010ad0dded7721dd.tar.xz
glibc-69ad8afe74aa5a0aa727553e010ad0dded7721dd.zip
Fix file descriotor leak in nftw with FTW_CHDIR
(cherry picked from commit 247fdf2e2b798378d8aeaac1ee6f4ba0a49f31f3)
-rw-r--r--ChangeLog6
-rw-r--r--io/ftw.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index a63f1b9036..6a0f4c0a70 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-02-10  Ulrich Drepper  <drepper@redhat.com>
+
+	[BZ #11271]
+	* io/ftw.c (ftw_startup): Close	descriptor for initial directory
+	after changing back to it.
+
 2010-02-09  Ulrich Drepper  <drepper@redhat.com>
 
 	* sysdeps/i386/lshift.S: Fix unwind information.
diff --git a/io/ftw.c b/io/ftw.c
index 9cc09077ed..bb7dba8ca8 100644
--- a/io/ftw.c
+++ b/io/ftw.c
@@ -1,5 +1,5 @@
 /* File tree walker functions.
-   Copyright (C) 1996-2004, 2006, 2007, 2008 Free Software Foundation, Inc.
+   Copyright (C) 1996-2004, 2006-2008, 2010 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -790,6 +790,7 @@ ftw_startup (const char *dir, int is_nftw, void *func, int descriptors,
     {
       int save_err = errno;
       __fchdir (cwdfd);
+      close_not_cancel_no_status (cwdfd);
       __set_errno (save_err);
     }
   else if (cwd != NULL)