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)