lib/model: Accept scan requests of paths ending in slash (fixes #3804)

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3805
This commit is contained in:
Jakob Borg
2016-12-16 11:21:22 +00:00
parent b279e261a1
commit 11b35d650d
2 changed files with 19 additions and 1 deletions

View File

@@ -1690,7 +1690,10 @@ func (m *Model) internalScanFolderSubdirs(folder string, subDirs []string) error
for i, sub := range subDirs {
sub = osutil.NativeFilename(sub)
// We test each path by joining with "root". What we join with is
// not relevant, we just want the dotdot escape detection here.
// not relevant, we just want the dotdot escape detection here. For
// historical reasons we may get paths that end in a slash. We
// remove that first to allow the rootedJoinedPath to pass.
sub = strings.TrimRight(sub, string(os.PathSeparator))
if _, err := rootedJoinedPath("root", sub); err != nil {
return errors.New("invalid subpath")
}