aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Unterwurzacher2018-02-01 23:46:02 +0100
committerJakob Unterwurzacher2018-02-01 23:50:11 +0100
commit9f8d0d8e5734e3771b52c8a8784ef5a76b0f9ca8 (patch)
tree7a09341b4bad590caa47e26ceaa8033e991a7dcf
parent26ba8103bf2422493a01b57b8ee53aa9b1e867f7 (diff)
gccgo: replace syscall.NAME_MAX with unix.NAME_MAX
For some reason the syscall.NAME_MAX constant does not exist on gccgo, and it does not hurt us to use unix.NAME_MAX instead. https://github.com/rfjakob/gocryptfs/issues/201
-rw-r--r--internal/fusefrontend_reverse/ctlsock_interface.go5
-rw-r--r--internal/fusefrontend_reverse/reverse_longnames.go4
-rw-r--r--internal/fusefrontend_reverse/rfs.go2
-rw-r--r--internal/nametransform/diriv.go6
-rw-r--r--internal/syscallcompat/getdents_test.go4
5 files changed, 14 insertions, 7 deletions
diff --git a/internal/fusefrontend_reverse/ctlsock_interface.go b/internal/fusefrontend_reverse/ctlsock_interface.go
index 5f61f37..c8ac379 100644
--- a/internal/fusefrontend_reverse/ctlsock_interface.go
+++ b/internal/fusefrontend_reverse/ctlsock_interface.go
@@ -3,7 +3,8 @@ package fusefrontend_reverse
import (
"path/filepath"
"strings"
- "syscall"
+
+ "golang.org/x/sys/unix"
"github.com/rfjakob/gocryptfs/internal/ctlsock"
"github.com/rfjakob/gocryptfs/internal/pathiv"
@@ -23,7 +24,7 @@ func (rfs *ReverseFS) EncryptPath(plainPath string) (string, error) {
for _, part := range parts {
dirIV := pathiv.Derive(cipherPath, pathiv.PurposeDirIV)
encryptedPart := rfs.nameTransform.EncryptName(part, dirIV)
- if rfs.args.LongNames && len(encryptedPart) > syscall.NAME_MAX {
+ if rfs.args.LongNames && len(encryptedPart) > unix.NAME_MAX {
encryptedPart = rfs.nameTransform.HashLongName(encryptedPart)
}
cipherPath = filepath.Join(cipherPath, encryptedPart)
diff --git a/internal/fusefrontend_reverse/reverse_longnames.go b/internal/fusefrontend_reverse/reverse_longnames.go
index 5ea7c0a..46f7399 100644
--- a/internal/fusefrontend_reverse/reverse_longnames.go
+++ b/internal/fusefrontend_reverse/reverse_longnames.go
@@ -7,6 +7,8 @@ import (
"syscall"
"time"
+ "golang.org/x/sys/unix"
+
"github.com/hanwen/go-fuse/fuse"
"github.com/hanwen/go-fuse/fuse/nodefs"
@@ -80,7 +82,7 @@ func (rfs *ReverseFS) findLongnameParent(dir string, dirIV []byte, longname stri
continue
}
cName := rfs.nameTransform.EncryptName(plaintextName, dirIV)
- if len(cName) <= syscall.NAME_MAX {
+ if len(cName) <= unix.NAME_MAX {
// Entry should have been skipped by the "continue" above
log.Panic("logic error or wrong shortNameMax constant?")
}
diff --git a/internal/fusefrontend_reverse/rfs.go b/internal/fusefrontend_reverse/rfs.go
index f9dde19..1523c18 100644
--- a/internal/fusefrontend_reverse/rfs.go
+++ b/internal/fusefrontend_reverse/rfs.go
@@ -288,7 +288,7 @@ func (rfs *ReverseFS) OpenDir(cipherPath string, context *fuse.Context) ([]fuse.
cName = configfile.ConfDefaultName
} else {
cName = rfs.nameTransform.EncryptName(entries[i].Name, dirIV)
- if len(cName) > syscall.NAME_MAX {
+ if len(cName) > unix.NAME_MAX {
cName = rfs.nameTransform.HashLongName(cName)
dotNameFile := fuse.DirEntry{
Mode: virtualFileMode,
diff --git a/internal/nametransform/diriv.go b/internal/nametransform/diriv.go
index 527ccce..06f029e 100644
--- a/internal/nametransform/diriv.go
+++ b/internal/nametransform/diriv.go
@@ -9,6 +9,8 @@ import (
"strings"
"syscall"
+ "golang.org/x/sys/unix"
+
"github.com/rfjakob/gocryptfs/internal/cryptocore"
"github.com/rfjakob/gocryptfs/internal/syscallcompat"
"github.com/rfjakob/gocryptfs/internal/tlog"
@@ -111,7 +113,7 @@ func WriteDirIV(dirfd *os.File, dir string) error {
// too long.
func (be *NameTransform) encryptAndHashName(name string, iv []byte) string {
cName := be.EncryptName(name, iv)
- if be.longNames && len(cName) > syscall.NAME_MAX {
+ if be.longNames && len(cName) > unix.NAME_MAX {
return be.HashLongName(cName)
}
return cName
@@ -128,7 +130,7 @@ func (be *NameTransform) EncryptPathDirIV(plainPath string, rootDir string) (str
}
// Reject names longer than 255 bytes.
baseName := filepath.Base(plainPath)
- if len(baseName) > syscall.NAME_MAX {
+ if len(baseName) > unix.NAME_MAX {
return "", syscall.ENAMETOOLONG
}
// If we have the iv and the encrypted directory name in the cache, we
diff --git a/internal/syscallcompat/getdents_test.go b/internal/syscallcompat/getdents_test.go
index 131ffee..4b50575 100644
--- a/internal/syscallcompat/getdents_test.go
+++ b/internal/syscallcompat/getdents_test.go
@@ -9,6 +9,8 @@ import (
"syscall"
"testing"
+ "golang.org/x/sys/unix"
+
"github.com/hanwen/go-fuse/fuse"
)
@@ -28,7 +30,7 @@ func testGetdents(t *testing.T) {
if err != nil {
t.Fatal(err)
}
- for i := 1; i <= syscall.NAME_MAX; i++ {
+ for i := 1; i <= unix.NAME_MAX; i++ {
n := strings.Repeat("x", i)
err = ioutil.WriteFile(testDir+"/"+n, nil, 0600)
if err != nil {