Fix panic on absolute symlink
This commit is contained in:
parent
28cdff5889
commit
bfdbbbf8b4
@ -52,7 +52,6 @@ func (be *CryptFS) encryptName(plainName string) string {
|
||||
cbc.CryptBlocks(bin, bin)
|
||||
|
||||
cipherName64 := base64.URLEncoding.EncodeToString(bin)
|
||||
|
||||
return cipherName64
|
||||
}
|
||||
|
||||
@ -70,6 +69,12 @@ func (be *CryptFS) translatePath(path string, op bool) (string, error) {
|
||||
var translatedParts []string
|
||||
parts := strings.Split(path, "/")
|
||||
for _, part := range parts {
|
||||
if part == "" {
|
||||
// This happens on "/foo/bar/" on the front and on the end.
|
||||
// Don't panic.
|
||||
translatedParts = append(translatedParts, "")
|
||||
continue
|
||||
}
|
||||
var newPart string
|
||||
if op == ENCRYPT {
|
||||
newPart = be.encryptName(part)
|
||||
|
@ -134,6 +134,7 @@ func (fs *FS) Rmdir(name string, context *fuse.Context) (code fuse.Status) {
|
||||
|
||||
func (fs *FS) Symlink(pointedTo string, linkName string, context *fuse.Context) (code fuse.Status) {
|
||||
// TODO symlink encryption
|
||||
cryptfs.Debug.Printf("Symlink(\"%s\", \"%s\")\n", pointedTo, linkName)
|
||||
return fs.FileSystem.Symlink(fs.EncryptPath(pointedTo), fs.EncryptPath(linkName), context)
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user