-
Notifications
You must be signed in to change notification settings - Fork 18.9k
Closed
Labels
FrozenDueToAgeNeedsFixThe path to resolution is known, but the work has not been done.The path to resolution is known, but the work has not been done.OS-WindowsSecurityrelease-blocker
Milestone
Description
Go 1.21.4 fixed a problem in filepath.Clean regarding \??\ paths. However, it also removed the ending slash for volumes in \\?\ paths. Is this expected? The docs still state
The returned path ends in a slash only if it represents a root directory, such as "/" on Unix or
C:\on Windows.
The following test passes on Go 1.21.3.
func TestFilepathClean(t *testing.T) {
cases := []struct {
in string
out string
}{
{`C:\`, `C:\`},
{`\\?\C:\`, `\\?\C:\`},
}
for _, c := range cases {
if out := filepath.Clean(c.in); out != c.out {
t.Errorf("filepath.Clean(%s) => %s expected %s", c.in, out, c.out)
}
}
}On Go 1.21.4 this happens:
PS C:\Users\jb\dev\syncthing\lib\fs> go1.21.4 test -run FilepathClean
--- FAIL: TestFilepathClean (0.00s)
basicfs_windows_test.go:30: filepath.Clean(\\?\C:\) => \\?\C: expected \\?\C:\
FAIL
exit status 1
FAIL github.com/syncthing/syncthing/lib/fs 0.062s
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
FrozenDueToAgeNeedsFixThe path to resolution is known, but the work has not been done.The path to resolution is known, but the work has not been done.OS-WindowsSecurityrelease-blocker