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 Beman Dawes, 12 years ago

Resolution: fixed
Status: newclosed

(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.

comment:2 by Claudio Bley, 12 years ago

Resolution: fixed
Status: closedreopened

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 Beman Dawes, 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 Beman Dawes, 11 years ago

Resolution: worksforme
Status: reopenedclosed

No response after six months, so I'm closing the ticket.

--Beman

Note: See TracTickets for help on using tickets.