diff options
Diffstat (limited to 'internal/fusefrontend')
| -rw-r--r-- | internal/fusefrontend/openbackingdir.go | 12 | 
1 files changed, 10 insertions, 2 deletions
| diff --git a/internal/fusefrontend/openbackingdir.go b/internal/fusefrontend/openbackingdir.go index 1cca81b..e9e10db 100644 --- a/internal/fusefrontend/openbackingdir.go +++ b/internal/fusefrontend/openbackingdir.go @@ -38,7 +38,11 @@ func (fs *FS) openBackingDir(relPath string) (dirfd int, cName string, err error  			return dirfd, ".", nil  		}  		name := filepath.Base(relPath) -		cName = fs.nameTransform.EncryptAndHashName(name, iv) +		cName, err = fs.nameTransform.EncryptAndHashName(name, iv) +		if err != nil { +			syscall.Close(dirfd) +			return -1, "", err +		}  		return dirfd, cName, nil  	}  	// Open cipherdir (following symlinks) @@ -58,7 +62,11 @@ func (fs *FS) openBackingDir(relPath string) (dirfd int, cName string, err error  			syscall.Close(dirfd)  			return -1, "", err  		} -		cName = fs.nameTransform.EncryptAndHashName(name, iv) +		cName, err = fs.nameTransform.EncryptAndHashName(name, iv) +		if err != nil { +			syscall.Close(dirfd) +			return -1, "", err +		}  		// Last part? We are done.  		if i == len(parts)-1 {  			fs.dirCache.Store(dirRelPath, dirfd, iv) | 
