aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Unterwurzacher2018-06-08 00:47:48 +0200
committerJakob Unterwurzacher2018-06-08 00:47:48 +0200
commitbde7ba57b06eb46f8901454e12524a74a8c3b6e8 (patch)
tree96b1a729897fcb6df14052a199a91543cc2f8a87
parent5ad26495fc86527bbfe75ac6b46528d49a373676 (diff)
darwin does not have PATH_MAX
Define our own, with the value from Linux.
-rw-r--r--daemonize.go2
-rw-r--r--internal/fusefrontend_reverse/rfs.go3
-rw-r--r--internal/syscallcompat/sys_common.go2
3 files changed, 4 insertions, 3 deletions
diff --git a/daemonize.go b/daemonize.go
index 5215b2c..40d9b64 100644
--- a/daemonize.go
+++ b/daemonize.go
@@ -29,7 +29,7 @@ func exitOnUsr1() {
func forkChild() int {
name := os.Args[0]
// Use the full path to our executable if we can get if from /proc.
- buf := make([]byte, syscall.PathMax)
+ buf := make([]byte, syscallcompat.PATH_MAX)
n, err := syscall.Readlink("/proc/self/exe", buf)
if err == nil {
name = string(buf[:n])
diff --git a/internal/fusefrontend_reverse/rfs.go b/internal/fusefrontend_reverse/rfs.go
index b281c76..829983b 100644
--- a/internal/fusefrontend_reverse/rfs.go
+++ b/internal/fusefrontend_reverse/rfs.go
@@ -333,8 +333,7 @@ func (rfs *ReverseFS) Readlink(relPath string, context *fuse.Context) (string, f
cTarget := rfs.nameTransform.B64.EncodeToString(cBinTarget)
// The kernel will reject a symlink target above 4096 chars and return
// and I/O error to the user. Better emit the proper error ourselves.
- const PATH_MAX = 4096 // not defined on Darwin
- if len(cTarget) > PATH_MAX {
+ if len(cTarget) > syscallcompat.PATH_MAX {
return "", fuse.Status(syscall.ENAMETOOLONG)
}
return cTarget, fuse.OK
diff --git a/internal/syscallcompat/sys_common.go b/internal/syscallcompat/sys_common.go
index 21823ef..77cdb07 100644
--- a/internal/syscallcompat/sys_common.go
+++ b/internal/syscallcompat/sys_common.go
@@ -6,6 +6,8 @@ import (
"golang.org/x/sys/unix"
)
+const PATH_MAX = 4096 // not defined on Darwin
+
// Readlinkat exists both in Linux and in MacOS 10.10+. We may add an
// emulated version for users on older MacOS versions if there is
// demand.