id summary reporter owner description type status milestone component version severity resolution keywords cc 12836 the function canonical invalidates a path if there is double dot between two symbolic links Frantisek Boranek Beman Dawes "Create unit test like this: {{{ #!cpp void test() { namespace fs = boost::filesystem; const fs::path base_path = createBaseDir(); // prepare hierarchy fs::create_directories(base_path / ""a/b/c""); fs::create_directory_symlink(base_path / ""a/b"", base_path / ""sym""); // base/sym -> base/a/b const fs::path test1 = base_path / ""sym/../sym/c""; // if a symbolic link is resolved first will be ../s2 exist? TS_ASSERT(fs::exists(test1)); TS_ASSERT(fs::exists(fs::canonical(test1))); } }}} Test verify that path test1 exists, but the second calling of this function fails for a normalized path by function //canonical//. It should work otherwise the function is not reliable. The problem can be resolved if the function //canonical// first strip path from a dot and double dot and then resolve symbolic links. I run the unit test only on Windows, but it should be no difference." Bugs new To Be Determined filesystem Boost 1.59.0 Problem