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,,,