* path.cc (symlink_info::check): Don't try to handle remote reparse

points as symlinks.  Explain why.
This commit is contained in:
Corinna Vinschen 2010-05-26 14:24:47 +00:00
parent 16f52c1461
commit 1ee8d76ca0
2 changed files with 13 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2010-05-26 Corinna Vinschen <corinna@vinschen.de>
* path.cc (symlink_info::check): Don't try to handle remote reparse
points as symlinks. Explain why.
2010-05-26 Corinna Vinschen <corinna@vinschen.de> 2010-05-26 Corinna Vinschen <corinna@vinschen.de>
* include/inttypes.h: Change PTR definitions to int to align with the * include/inttypes.h: Change PTR definitions to int to align with the

View File

@ -2503,8 +2503,14 @@ restart:
performed before checking the SYSTEM attribute for sysfile performed before checking the SYSTEM attribute for sysfile
symlinks, since reparse points can have this flag set, too. symlinks, since reparse points can have this flag set, too.
For instance, Vista starts to create a couple of reparse points For instance, Vista starts to create a couple of reparse points
with SYSTEM and HIDDEN flags set. */ with SYSTEM and HIDDEN flags set.
else if (fileattr & FILE_ATTRIBUTE_REPARSE_POINT) Also don't check reparse points on remote filesystems.
A reparse point pointing to another file on the remote system will be
mistreated as pointing to a local file on the local system. This
breaks the way reparse points are transparently handled on remote
systems. */
else if ((fileattr & FILE_ATTRIBUTE_REPARSE_POINT)
&& !fs.is_remote_drive())
{ {
res = check_reparse_point (h); res = check_reparse_point (h);
if (res == -1) if (res == -1)