View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003311 | Far Manager | File System | public | 2016-09-24 14:58 | 2016-09-26 16:28 |
Reporter | pepak | Assigned To | DrKnS | ||
Priority | high | Severity | major | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 3.0 | ||||
Fixed in Version | 3.0 | ||||
Summary | 0003311: Incorrect QueryDosDevice call in MatchNtPathRoot (pathmix.cpp) | ||||
Description | MatchNtPathRoot calls QueryDosDevice to convert a DOS drive letter to NT device name. Unfortunately, when called from internalNtQueryGetFinalPathNameByHandle (farwinapi.cpp), the device name takes the form of "C:\" in direct violation of QueryDosDevice requirements: The device name cannot have a trailing backslash; for example, use "C:", not "C:\". [ https://msdn.microsoft.com/en-us/library/windows/desktop/aa365461(v=vs.85).aspx ] This causes ConvertNameToReal (cvtname.cpp) to fail to convert most junctions*) to their proper real names, which in turn leads to ScanTree::GetNextName (scantree.cpp) to silently skip these junctions in any operation which uses the FSCANTREE_SCANSYMLINK flag. Which can easily lead to the loss of data when performing e.g. a copy with "Copy contents of symbolic links" activated. *) Some get converted through a workaround by replacing certain \Device\something names directly. | ||||
Steps To Reproduce | 1) Create a HDD-like ramdisk with ImDisk ( http://www.ltr-data.se/opencode.html/ ) as X: 2) Create a folder X:\Test and file (any content X:\Test\Test.txt). 3) Create a folder C:\Test. 4) Create junction to X:\Test in C:\Test under the name of Junction. 5) Attempt to copy C:\Test to C:\Test2 with "Copy contents of symbolic links" activated. 6) Look into C:\Test2\Junction: There will be no Test.txt. | ||||
Additional Information | Related to http://bugs.farmanager.com/view.php?id=3255 and required for its fix. | ||||
Tags | No tags attached. | ||||
Build | 4796 | ||||
Date Modified | Username | Field | Change |
---|---|---|---|
2016-09-24 14:58 | pepak | New Issue | |
2016-09-24 14:58 | pepak | File Added: bug0003311.zip | |
2016-09-24 14:59 | pepak | Note Added: 0014794 | |
2016-09-25 17:59 | DrKnS | Assigned To | => DrKnS |
2016-09-25 17:59 | DrKnS | Status | new => assigned |
2016-09-25 18:09 | DrKnS | Note Added: 0014803 | |
2016-09-25 18:09 | DrKnS | Status | assigned => feedback |
2016-09-26 15:59 | pepak | Note Added: 0014810 | |
2016-09-26 15:59 | pepak | Status | feedback => assigned |
2016-09-26 16:28 | DrKnS | Build | => 4796 |
2016-09-26 16:28 | DrKnS | Status | assigned => closed |
2016-09-26 16:28 | DrKnS | Resolution | open => fixed |
2016-09-26 16:28 | DrKnS | Fixed in Version | => 3.0 |