diff options
author | gVisor bot <gvisor-bot@google.com> | 2019-12-16 16:21:17 -0800 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2019-12-16 16:21:17 -0800 |
commit | 2e2545b45861218c963836fabf6f13e6d2f10c9e (patch) | |
tree | 9d85c37ec3e286163a966911cd3cb05262016cfd | |
parent | 3193b2fff8149fe43a3a59c266359e7f443a1563 (diff) | |
parent | 8a46e83111c70c7ee81368dd4e9df53559213fa0 (diff) |
Merge pull request #1392 from zhuangel:bindleak
PiperOrigin-RevId: 285874181
-rw-r--r-- | pkg/sentry/fs/gofer/path.go | 4 |
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 } |