Opened 12 years ago
Closed 11 years ago
#4663 closed Bugs (worksforme)
filesystem objects falsely identified as symlinks
Reported by: | Claudio Bley | Owned by: | Beman Dawes |
---|---|---|---|
Milestone: | To Be Determined | Component: | filesystem |
Version: | Boost 1.44.0 | Severity: | Problem |
Keywords: | Cc: |
Description
Symlink status on windows is determined only by checking the FILE_ATTRIBUTE_REPARSE_POINT attribute.
But, that doesn't really mean the file is a symlink as the type of a reparse point depends on the reparse point tag.
If the file has the IO_REPARSE_TAG_SYMLINK or IO_REPARSE_TAG_MOUNT_POINT tag, then it is some kind of symlink (junction, mount point or symlink).
E.g. see http://msdn.microsoft.com/en-us/library/dd541667%28PROT.13%29.aspx
Change History (4)
comment:1 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:2 by , 12 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
I eagerly awaited the 1.45 release in order to use the fixed filesystem library. But, I'm not really happy, yet.
As I indicated in my initial report, I would suggest to handle junction points (pre Vista "symlinks") and real symlinks as supported by NTFS v6.0 the same.
Rational: They serve the same purpose and act the same except junction points have some more limitations than symlinks.
It would make life easier when traversing the filesystem to avoid running into a cyclic directory reference if boost::filesystem::is_symlink(p)
would just return true
for all kinds of symlinks.
comment:3 by , 12 years ago
It would be most helpful if you could submit a patch. I also need test cases.
Some pointers to Microsoft docs would be helpful. The last time I looked at junction points I came away very confused, and concerned about the reliability of possible code.
Thanks,
--Beman
comment:4 by , 11 years ago
Resolution: | → worksforme |
---|---|
Status: | reopened → closed |
No response after six months, so I'm closing the ticket.
--Beman
(In [65916]) Fix #4663, filesystem objects falsely identified as symlinks. operations_test.cpp refactored and various symlink related tests added. Fixes to bugs found as a result, in addition to the 4663 bug.