Subject: [Boost-bugs] [Boost C++ Libraries] #12904: canonical fails for relative symbolic link on NTFS
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2017-03-14 16:24:57
#12904: canonical fails for relative symbolic link on NTFS
-------------------------------------------------+-------------------------
Reporter: Matthias@⦠| Owner: bemandawes
Type: Bugs | Status: new
Milestone: To Be Determined | Component: filesystem
Version: Boost 1.63.0 | Severity: Problem
Keywords: filesystem canonical symbolic link |
symlink assert |
-------------------------------------------------+-------------------------
I've an path inside a directory which is a symbolic link at an NTFS
partition.
The link points to a another directory in the same base directory.
boost throws
{{{
BOOST_ASSERT_MSG(result.is_absolute(), "canonical() implementation error;
please report");
}}}
in {{{operations.cpp, line 881}}}
Here are more details:
I call {{{boost::filesystem::canonical}} with following ({{{const
wchar_t*}}}) parameter:
{{{L"C:\\Projekte\\50_Workspace\\out\\x64\\.\\audio\\Test.dll"}}}
The current working directory is
{{{L"C:\\Projekte\\50_Workspace\\out\\x64"}}}
which is a symlink to {{{"x64.Debug"}} in the same base directory (in
{{{"C:\\Projekte\\50_Workspace\\out"}}}).
Boost detects that the {{{"x64"}}} is a relative symbolic link and enters
the {{{"else"}}} in {{{line 868}}}.
But the created new_source looks strange:
{{{"x64.Debug/Projekte\\50_Workspace\\out\\x64\\.\\audio\\Test.dll"}}}
In my opinion it should create either
{{{"C:\\Project\\50_Workspace\\out\\x64.Debug\\.\\audio\\Test.dll"}}}
or
{{{"C:/Project/50_Workspace/out/x64.Debug/./audio/Test.dll"}}}
for the next loop...
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/12904> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-03-14 16:28:19 UTC