lib/protocol: Handle slashified paths in IsEncryptedParent (fixes #7184) (#7187)

This commit is contained in:
Simon Frei
2020-12-09 18:16:14 +01:00
committed by GitHub
parent 4198b5061f
commit 8fd6b1d428
2 changed files with 21 additions and 4 deletions
+14 -4
View File
@@ -538,9 +538,8 @@ func IsEncryptedParent(path string) bool {
}
func isEncryptedParentFromComponents(pathComponents []string) bool {
if l := len(pathComponents); l > 2 {
return false
} else if l == 2 && len(pathComponents[1]) != 2 {
l := len(pathComponents)
if l == 2 && len(pathComponents[1]) != 2 {
return false
} else if l == 0 {
return false
@@ -548,5 +547,16 @@ func isEncryptedParentFromComponents(pathComponents []string) bool {
if len(pathComponents[0]) == 0 {
return false
}
return pathComponents[0][1:] == encryptedDirExtension
if pathComponents[0][1:] != encryptedDirExtension {
return false
}
if l < 2 {
return true
}
for _, comp := range pathComponents[2:] {
if len(comp) != maxPathComponent {
return false
}
}
return true
}