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
+7
View File
@@ -11,6 +11,8 @@ import (
"reflect"
"strings"
"testing"
"github.com/syncthing/syncthing/lib/rand"
)
func TestEnDecryptName(t *testing.T) {
@@ -97,6 +99,7 @@ func TestEnDecryptFileInfo(t *testing.T) {
}
func TestIsEncryptedParent(t *testing.T) {
comp := rand.String(maxPathComponent)
cases := []struct {
path string
is bool
@@ -111,6 +114,10 @@ func TestIsEncryptedParent(t *testing.T) {
{"1" + encryptedDirExtension + "/bcd", false},
{"1" + encryptedDirExtension + "/bc/foo", false},
{"1.12/22", false},
{"1" + encryptedDirExtension + "/bc/" + comp, true},
{"1" + encryptedDirExtension + "/bc/" + comp + "/" + comp, true},
{"1" + encryptedDirExtension + "/bc/" + comp + "a", false},
{"1" + encryptedDirExtension + "/bc/" + comp + "/a/" + comp, false},
}
for _, tc := range cases {
if res := IsEncryptedParent(tc.path); res != tc.is {