From 395957155f0686377101eef9537012778e20ae55 Mon Sep 17 00:00:00 2001 From: Kir Kolyshkin Date: Mon, 7 May 2018 14:31:30 -0700 Subject: [PATCH] cli/command/container: don't leak context Switch from x/net/context to context made "go vet" see the previously unseen errors: > cli/command/container/start.go:57::error: the cancelFun function is > not used on all paths (possible context leak) (vet) > cli/command/container/start.go:63::error: this return statement may be > reached without using the cancelFun var defined on line 57 (vet) > cli/command/container/run.go:159::error: the cancelFun function is not > used on all paths (possible context leak) (vet) > cli/command/container/run.go:164::error: this return statement may be > reached without using the cancelFun var defined on line 159 (vet) Do call the cancel function. Note we might end up calling it twice which is fine as long as I can see from the Go 1.10 source code. Signed-off-by: Kir Kolyshkin --- cli/command/container/run.go | 1 + cli/command/container/start.go | 1 + 2 files changed, 2 insertions(+) diff --git a/cli/command/container/run.go b/cli/command/container/run.go index 02ff715259..d2ca58739f 100644 --- a/cli/command/container/run.go +++ b/cli/command/container/run.go @@ -157,6 +157,7 @@ func runContainer(dockerCli command.Cli, opts *runOptions, copts *containerOptio } ctx, cancelFun := context.WithCancel(context.Background()) + defer cancelFun() createResponse, err := createContainer(ctx, dockerCli, containerConfig, &opts.createOptions) if err != nil { diff --git a/cli/command/container/start.go b/cli/command/container/start.go index 2617e489f5..243097c0cd 100644 --- a/cli/command/container/start.go +++ b/cli/command/container/start.go @@ -55,6 +55,7 @@ func NewStartCommand(dockerCli command.Cli) *cobra.Command { // nolint: gocyclo func runStart(dockerCli command.Cli, opts *startOptions) error { ctx, cancelFun := context.WithCancel(context.Background()) + defer cancelFun() if opts.attach || opts.openStdin { // We're going to attach to a container.