diff options
author | Ayush Ranjan <ayushranjan@google.com> | 2021-10-19 16:45:09 -0700 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2021-10-19 16:47:44 -0700 |
commit | 1b494b80f02774ee109ccb7e20d9c2fe59b8cf72 (patch) | |
tree | bac01f38e8c152ace1533cb1c206213cdac83b66 /pkg/tcpip/network/ipv6 | |
parent | 64aee33ed0e1a422c3e2954de8f1d3f219ed14b8 (diff) |
Do not return non-nil *lisafs.Inode to doCreateAt on error.
lisafs.ClientFile.MkdirAt is allowed to return a non-nil Inode and a non-nil
error on an RPC error. The caller must not use the returned (invalid) Inode on
error. But a code path in the gofer client does end up using it.
More specifically, when the Mkdir RPC fails and we end up creating a synthetic
dentry for a mountpoint, we end up returning the (invalid) non-nil Inode to
filesystem.doCreateAt implementation which thinks that a remote file was
created. But that non-nil Inode is actually invalid because the RPC failed.
Things go downhill from there.
Update client to not use childDirInode if RPC failed.
PiperOrigin-RevId: 404396573
Diffstat (limited to 'pkg/tcpip/network/ipv6')
0 files changed, 0 insertions, 0 deletions