lib/model: Invalidate files with trailing white space on Windows (fixes #3227)

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3383
This commit is contained in:
Jakob Borg 2016-07-04 10:44:30 +00:00
parent 21f5b16e47
commit 8a64883355
2 changed files with 28 additions and 1 deletions

View File

@ -41,7 +41,7 @@ func (m nativeModel) Request(deviceID DeviceID, folder string, name string, offs
func fixupFiles(folder string, files []FileInfo) { func fixupFiles(folder string, files []FileInfo) {
for i, f := range files { for i, f := range files {
if strings.ContainsAny(f.Name, disallowedCharacters) { if strings.ContainsAny(f.Name, disallowedCharacters) || strings.HasSuffix(f.Name, " ") {
if f.IsDeleted() { if f.IsDeleted() {
// Don't complain if the file is marked as deleted, since it // Don't complain if the file is marked as deleted, since it
// can't possibly exist here anyway. // can't possibly exist here anyway.

View File

@ -0,0 +1,27 @@
// Copyright (C) 2016 The Protocol Authors.
// +build windows
package protocol
import "testing"
func TestFixupFiles(t *testing.T) {
fs := []FileInfo{
{Name: "ok"}, // This file is OK
{Name: "b<d"}, // The rest should be marked as invalid
{Name: "b?d"},
{Name: "bad "},
}
fixupFiles("default", fs)
if fs[0].IsInvalid() {
t.Error("fs[0] should not be invalid")
}
for i := 1; i < len(fs); i++ {
if !fs[i].IsInvalid() {
t.Errorf("fs[%d] should be invalid", i)
}
}
}