When the top-level folder of a Windows UNC path does not exist, the os.MkdirAll function goes one step too deep in recursion. This is illustrated in the following scenario:
Make sure C:\Test does not exist
Try to create a new folder with arbitrary depth os.MkdirAll("\\\\?\\C:\\Test", 0700) using UNC (we use UNC to support long paths).
This fails with The filename, directory name, or volume label syntax is incorrect. This is due to a bug in the Go library. The callstack reveals that it tries to create the folder \\?, which should not happen.
I figured this issue is different because we use explicitly use the UNC paths (where #3358 tries to automatically support long paths for all functions).
We'll implement a custom MkdirAll if this seems out of scope for the moment, thanks.
Go 1.4, Windows
When the top-level folder of a Windows UNC path does not exist, the os.MkdirAll function goes one step too deep in recursion. This is illustrated in the following scenario:
os.MkdirAll("\\\\?\\C:\\Test", 0700)
using UNC (we use UNC to support long paths).The filename, directory name, or volume label syntax is incorrect
. This is due to a bug in the Go library. The callstack reveals that it tries to create the folder\\?
, which should not happen.(Related to syncthing/syncthing#1822)
The text was updated successfully, but these errors were encountered: