* path.cc (symlink_info::check): Don't try to handle remote reparse
points as symlinks. Explain why.
This commit is contained in:
parent
16f52c1461
commit
1ee8d76ca0
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue