aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2010-08-20 14:29:56 +0000
committerCorinna Vinschen <corinna@vinschen.de>2010-08-20 14:29:56 +0000
commita6fc3a61c2364a54c676a452589a82b6432f8823 (patch)
treedb15769fd5f9c7a6570d1cbd747ca4abf887fe14 /winsup/cygwin
parent74f50846a9d97cfcce2f1d784f2a67c6f889d716 (diff)
downloadnewlib-a6fc3a61c2364a54c676a452589a82b6432f8823.zip
newlib-a6fc3a61c2364a54c676a452589a82b6432f8823.tar.gz
newlib-a6fc3a61c2364a54c676a452589a82b6432f8823.tar.bz2
* path.cc (path_conv::check): Close handle in conv_handle if we're
following a symlink.
Diffstat (limited to 'winsup/cygwin')
-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 7ec9799..5053b4e 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 fb4526f..deefc77 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)