From 352f3147c5f1260cf729692d945c87e210cb1ad8 Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Wed, 2 Jan 2019 21:52:52 +0100 Subject: [PATCH] fusefrontend: move openBackingDir into its own file This function is in all fastpaths, will get a cache, and needs its own file. renamed: internal/fusefrontend/names.go -> internal/fusefrontend/openbackingdir.go renamed: internal/fusefrontend/names_test.go -> internal/fusefrontend/openbackingdir_test.go --- internal/fusefrontend/fs.go | 19 ++++++++++++++++ .../{names.go => openbackingdir.go} | 22 ------------------- .../{names_test.go => openbackingdir_test.go} | 0 3 files changed, 19 insertions(+), 22 deletions(-) rename internal/fusefrontend/{names.go => openbackingdir.go} (72%) rename internal/fusefrontend/{names_test.go => openbackingdir_test.go} (100%) diff --git a/internal/fusefrontend/fs.go b/internal/fusefrontend/fs.go index 5c52a19..5adade6 100644 --- a/internal/fusefrontend/fs.go +++ b/internal/fusefrontend/fs.go @@ -16,6 +16,7 @@ import ( "github.com/hanwen/go-fuse/fuse/nodefs" "github.com/hanwen/go-fuse/fuse/pathfs" + "github.com/rfjakob/gocryptfs/internal/configfile" "github.com/rfjakob/gocryptfs/internal/contentenc" "github.com/rfjakob/gocryptfs/internal/nametransform" "github.com/rfjakob/gocryptfs/internal/serialize_reads" @@ -661,3 +662,21 @@ func (fs *FS) reportMitigatedCorruption(item string) { return } } + +// isFiltered - check if plaintext "path" should be forbidden +// +// Prevents name clashes with internal files when file names are not encrypted +func (fs *FS) isFiltered(path string) bool { + if !fs.args.PlaintextNames { + return false + } + // gocryptfs.conf in the root directory is forbidden + if path == configfile.ConfDefaultName { + tlog.Info.Printf("The name /%s is reserved when -plaintextnames is used\n", + configfile.ConfDefaultName) + return true + } + // Note: gocryptfs.diriv is NOT forbidden because diriv and plaintextnames + // are exclusive + return false +} diff --git a/internal/fusefrontend/names.go b/internal/fusefrontend/openbackingdir.go similarity index 72% rename from internal/fusefrontend/names.go rename to internal/fusefrontend/openbackingdir.go index 63f2e84..849a486 100644 --- a/internal/fusefrontend/names.go +++ b/internal/fusefrontend/openbackingdir.go @@ -1,36 +1,14 @@ package fusefrontend -// This file forwards file encryption operations to cryptfs - import ( "path/filepath" "strings" "syscall" - "github.com/rfjakob/gocryptfs/internal/configfile" "github.com/rfjakob/gocryptfs/internal/nametransform" "github.com/rfjakob/gocryptfs/internal/syscallcompat" - "github.com/rfjakob/gocryptfs/internal/tlog" ) -// isFiltered - check if plaintext "path" should be forbidden -// -// Prevents name clashes with internal files when file names are not encrypted -func (fs *FS) isFiltered(path string) bool { - if !fs.args.PlaintextNames { - return false - } - // gocryptfs.conf in the root directory is forbidden - if path == configfile.ConfDefaultName { - tlog.Info.Printf("The name /%s is reserved when -plaintextnames is used\n", - configfile.ConfDefaultName) - return true - } - // Note: gocryptfs.diriv is NOT forbidden because diriv and plaintextnames - // are exclusive - return false -} - // openBackingDir opens the parent ciphertext directory of plaintext path // "relPath" and returns the dirfd and the encrypted basename. // diff --git a/internal/fusefrontend/names_test.go b/internal/fusefrontend/openbackingdir_test.go similarity index 100% rename from internal/fusefrontend/names_test.go rename to internal/fusefrontend/openbackingdir_test.go