summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/path.cc3
2 files changed, 8 insertions, 0 deletions
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 <corinna@vinschen.de>
+
+ * path.cc (path_conv::check): Close handle in conv_handle if we're
+ following a symlink.
+
2010-08-20 Pedro Izecksohn <pedro.izecksohn@gmail.com>
* 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)