id summary reporter owner description type status milestone component version severity resolution keywords cc 10900 read_symlink fails to correctly read NTFS junctions Benjamin Kummer-Hardt Beman Dawes "''Tested on Windows 7 64-bit.'' NTFS directory junctions are now recognized as a symlink by `is_reparse_point_a_symlink` but `read_symlink` does not correctly handle those ""mount point"" reparse points yet. Among other things this also breaks the `canonical` operation. The `REPARSE_DATA_BUFFER` returned by `DeviceIoControl` needs to be accessed differently for regular symlinks and mount points. See msdn.microsoft.com/en-us/library/ff552012.aspx Accessing the ""!PrintName"" as a symlink typically results in the first two (wide) characters of the path being skipped and generally in undefined behavior. A possible fix would be to add a conditional statement checking `info.rdb.ReparseTag == IO_REPARSE_TAG_MOUNT_POINT` and then amend the `symlink_path.assign` call accordingly (using `info.rdb.MountPointReparseBuffer` instead of `info.rdb.SymbolicLinkReparseBuffer`). In version 1.57.0 the offending code can be found in ''libs/filesystem/src/operations.cpp'' around line 1514." Bugs assigned To Be Determined filesystem Boost 1.57.0 Problem