summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorgVisor bot <gvisor-bot@google.com>2019-12-16 16:21:17 -0800
committergVisor bot <gvisor-bot@google.com>2019-12-16 16:21:17 -0800
commit2e2545b45861218c963836fabf6f13e6d2f10c9e (patch)
tree9d85c37ec3e286163a966911cd3cb05262016cfd
parent3193b2fff8149fe43a3a59c266359e7f443a1563 (diff)
parent8a46e83111c70c7ee81368dd4e9df53559213fa0 (diff)
Merge pull request #1392 from zhuangel:bindleak
PiperOrigin-RevId: 285874181
-rw-r--r--pkg/sentry/fs/gofer/path.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/pkg/sentry/fs/gofer/path.go b/pkg/sentry/fs/gofer/path.go
index 8c17603f8..c09f3b71c 100644
--- a/pkg/sentry/fs/gofer/path.go
+++ b/pkg/sentry/fs/gofer/path.go
@@ -234,6 +234,8 @@ func (i *inodeOperations) Bind(ctx context.Context, dir *fs.Inode, name string,
if err != nil {
return nil, err
}
+ // We're not going to use newFile after return.
+ defer newFile.close(ctx)
// Stabilize the endpoint map while creation is in progress.
unlock := i.session().endpoints.lock()
@@ -254,7 +256,6 @@ func (i *inodeOperations) Bind(ctx context.Context, dir *fs.Inode, name string,
// Get the attributes of the file to create inode key.
qid, mask, attr, err := getattr(ctx, newFile)
if err != nil {
- newFile.close(ctx)
return nil, err
}
@@ -270,7 +271,6 @@ func (i *inodeOperations) Bind(ctx context.Context, dir *fs.Inode, name string,
// cloned and re-opened multiple times after creation.
_, unopened, err := i.fileState.file.walk(ctx, []string{name})
if err != nil {
- newFile.close(ctx)
return nil, err
}