From a6fc3a61c2364a54c676a452589a82b6432f8823 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Fri, 20 Aug 2010 14:29:56 +0000 Subject: [PATCH] * path.cc (path_conv::check): Close handle in conv_handle if we're following a symlink. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/path.cc | 3 +++ 2 files changed, 8 insertions(+) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 7ec979974..5053b4efc 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2010-08-20 Corinna Vinschen + + * path.cc (path_conv::check): Close handle in conv_handle if we're + following a symlink. + 2010-08-20 Pedro Izecksohn * endian.h (htobe16, htobe32, htobe64, be16toh, be32toh, be64toh, diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index fb4526fd5..deefc7791 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -900,6 +900,9 @@ is_virtual_symlink: /* Following a symlink we can't trust the collected filesystem information any longer. */ fs.clear (); + /* Close handle, if we have any. Otherwise we're collecting + handles while following symlinks. */ + conv_handle.close (); break; } else if (sym.error && sym.error != ENOENT)