libgocryptfs/internal/fusefrontend_reverse
Val c9e4e4f741 Fix reverse gocryptfs.conf access on macOS
Unlike the FUSE implementation on Linux, macFUSE doesn't cache the file
attributes from the `LOOKUP` call, so it calls `GETATTR` prior to
accessing a file.

In the case of the `VirtualConfNode` (reverse config file passthrough),
this resulted in the default `GETATTR` implementation returning an empty
result, ultimately resulting in a "permission denied" error.

    14:44:14.095207 rx 3: GETATTR n2
    14:44:14.095229 tx 3:     OK, {tA=1s {M0100000 SZ=0 L=0 0:0 0 0:8954996 A 0.000000 M 0.000000 C 0.000000}}
    14:44:14.099943 rx 4: ACCESS n2 {u=501 g=20 r}
    14:44:14.099990 tx 4:     13=permission denied

By impementing `Getattr` (from `fs.NodeGetattrer`) on `VirtualConfNode`
this solves the issue.
2022-04-02 15:15:04 +02:00
..
ctlsock_interface.go go mod: declare module version v2 2021-08-23 15:05:15 +02:00
excluder_test.go go mod: declare module version v2 2021-08-23 15:05:15 +02:00
excluder.go go mod: declare module version v2 2021-08-23 15:05:15 +02:00
file_api_check.go v2api/reverse: implement Lseek 2020-08-16 19:58:47 +02:00
file_helpers.go go mod: declare module version v2 2021-08-23 15:05:15 +02:00
file.go go mod: declare module version v2 2021-08-23 15:05:15 +02:00
node_api_check.go v2api/reverse: update TODO comment on xattrs 2020-08-30 16:39:46 +02:00
node_dir_ops.go go mod: declare module version v2 2021-08-23 15:05:15 +02:00
node_helpers.go go mod: declare module version v2 2021-08-23 15:05:15 +02:00
node.go go mod: declare module version v2 2021-08-23 15:05:15 +02:00
root_node.go inomap: deterministically set root device 2021-09-10 17:17:16 +02:00
rpath.go go mod: declare module version v2 2021-08-23 15:05:15 +02:00
virtualconf.go Fix reverse gocryptfs.conf access on macOS 2022-04-02 15:15:04 +02:00
virtualnode.go go mod: declare module version v2 2021-08-23 15:05:15 +02:00