From 58413c15cb0382a66c4dd18b8e32205b22cfa833 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Mon, 27 Jun 2022 11:22:21 +0200 Subject: [PATCH 1/2] update to golang 1.19 also ran gofmt with go1.19 Signed-off-by: Sebastiaan van Stijn --- .github/workflows/.windows.yml | 13 ++++++---- Dockerfile | 2 +- Dockerfile.e2e | 2 +- Dockerfile.simple | 2 +- Dockerfile.windows | 4 +-- daemon/content.go | 3 ++- .../resolvconf/resolvconf_linux_test.go | 26 +++++++++---------- 7 files changed, 28 insertions(+), 24 deletions(-) diff --git a/.github/workflows/.windows.yml b/.github/workflows/.windows.yml index a32f6fc4cb..3969f2ba58 100644 --- a/.github/workflows/.windows.yml +++ b/.github/workflows/.windows.yml @@ -13,7 +13,10 @@ on: default: false env: - GO_VERSION: 1.18.6 + GO_VERSION: 1.19 + # FIXME: temporarily using a separate var for this, as go-setup-action expects SemVer + # see https://github.com/actions/setup-go/tree/v3.2.0#supported-version-syntax + GO_VERSION_SEMVER: 1.19.0 GOTESTLIST_VERSION: v0.2.0 TESTSTAT_VERSION: v0.1.3 WINDOWS_BASE_IMAGE: mcr.microsoft.com/windows/servercore @@ -187,7 +190,7 @@ jobs: name: Set up Go uses: actions/setup-go@v3 with: - go-version: ${{ env.GO_VERSION }} + go-version: ${{ env.GO_VERSION_SEMVER }} - name: Download artifacts uses: actions/download-artifact@v3 @@ -215,7 +218,7 @@ jobs: name: Set up Go uses: actions/setup-go@v3 with: - go-version: ${{ env.GO_VERSION }} + go-version: ${{ env.GO_VERSION_SEMVER }} - name: Install gotestlist run: @@ -387,7 +390,7 @@ jobs: name: Set up Go uses: actions/setup-go@v3 with: - go-version: ${{ env.GO_VERSION }} + go-version: ${{ env.GO_VERSION_SEMVER }} - name: Test integration if: matrix.test == './...' @@ -477,7 +480,7 @@ jobs: name: Set up Go uses: actions/setup-go@v3 with: - go-version: ${{ env.GO_VERSION }} + go-version: ${{ env.GO_VERSION_SEMVER }} - name: Download artifacts uses: actions/download-artifact@v3 diff --git a/Dockerfile b/Dockerfile index 1247f72a50..d49ef8da6d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ ARG CROSS="false" ARG SYSTEMD="false" -ARG GO_VERSION=1.18.6 +ARG GO_VERSION=1.19 ARG DEBIAN_FRONTEND=noninteractive ARG VPNKIT_VERSION=0.5.0 diff --git a/Dockerfile.e2e b/Dockerfile.e2e index 904b4dc167..915b05abf6 100644 --- a/Dockerfile.e2e +++ b/Dockerfile.e2e @@ -1,4 +1,4 @@ -ARG GO_VERSION=1.18.6 +ARG GO_VERSION=1.19 FROM golang:${GO_VERSION}-alpine AS base ENV GO111MODULE=off diff --git a/Dockerfile.simple b/Dockerfile.simple index c22b2fb34d..789e96f264 100644 --- a/Dockerfile.simple +++ b/Dockerfile.simple @@ -5,7 +5,7 @@ # This represents the bare minimum required to build and test Docker. -ARG GO_VERSION=1.18.6 +ARG GO_VERSION=1.19 ARG BASE_DEBIAN_DISTRO="bullseye" ARG GOLANG_IMAGE="golang:${GO_VERSION}-${BASE_DEBIAN_DISTRO}" diff --git a/Dockerfile.windows b/Dockerfile.windows index 65ff34a703..a3ddfdaa93 100644 --- a/Dockerfile.windows +++ b/Dockerfile.windows @@ -165,10 +165,10 @@ FROM microsoft/windowsservercore # Use PowerShell as the default shell SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] -ARG GO_VERSION=1.18.6 -ARG CONTAINERD_VERSION=v1.6.8 +ARG GO_VERSION=1.19 ARG GOTESTSUM_VERSION=v1.8.1 ARG GOWINRES_VERSION=v0.2.3 +ARG CONTAINERD_VERSION=v1.6.8 # Environment variable notes: # - GO_VERSION must be consistent with 'Dockerfile' used by Linux. diff --git a/daemon/content.go b/daemon/content.go index 2b14182598..3ac69db743 100644 --- a/daemon/content.go +++ b/daemon/content.go @@ -63,7 +63,8 @@ func (cp namespacedContent) Info(ctx context.Context, dgst digest.Digest) (conte // If one or more fieldpaths are provided, only those // fields will be updated. // Mutable fields: -// labels.* +// +// labels.* func (cp namespacedContent) Update(ctx context.Context, info content.Info, fieldpaths ...string) (content.Info, error) { return cp.provider.Update(withDefaultNamespace(ctx, cp.ns), info, fieldpaths...) } diff --git a/libnetwork/resolvconf/resolvconf_linux_test.go b/libnetwork/resolvconf/resolvconf_linux_test.go index 1d7b9a86ed..8402fc6313 100644 --- a/libnetwork/resolvconf/resolvconf_linux_test.go +++ b/libnetwork/resolvconf/resolvconf_linux_test.go @@ -77,12 +77,12 @@ nameserver 1.2.3.4 # not 4.3.2.1`: {"1.2.3.4/32"}, func TestGetSearchDomains(t *testing.T) { for resolv, result := range map[string][]string{ - `search example.com`: {"example.com"}, - `search example.com # ignored`: {"example.com"}, - ` search example.com `: {"example.com"}, - ` search example.com # ignored`: {"example.com"}, - `search foo.example.com example.com`: {"foo.example.com", "example.com"}, - ` search foo.example.com example.com `: {"foo.example.com", "example.com"}, + `search example.com`: {"example.com"}, + `search example.com # ignored`: {"example.com"}, + ` search example.com `: {"example.com"}, + ` search example.com # ignored`: {"example.com"}, + `search foo.example.com example.com`: {"foo.example.com", "example.com"}, + ` search foo.example.com example.com `: {"foo.example.com", "example.com"}, ` search foo.example.com example.com # ignored`: {"foo.example.com", "example.com"}, ``: {}, `# ignored`: {}, @@ -104,13 +104,13 @@ nameserver 4.30.20.100`: {"foo.example.com", "example.com"}, func TestGetOptions(t *testing.T) { for resolv, result := range map[string][]string{ - `options opt1`: {"opt1"}, - `options opt1 # ignored`: {"opt1"}, - ` options opt1 `: {"opt1"}, - ` options opt1 # ignored`: {"opt1"}, - `options opt1 opt2 opt3`: {"opt1", "opt2", "opt3"}, - `options opt1 opt2 opt3 # ignored`: {"opt1", "opt2", "opt3"}, - ` options opt1 opt2 opt3 `: {"opt1", "opt2", "opt3"}, + `options opt1`: {"opt1"}, + `options opt1 # ignored`: {"opt1"}, + ` options opt1 `: {"opt1"}, + ` options opt1 # ignored`: {"opt1"}, + `options opt1 opt2 opt3`: {"opt1", "opt2", "opt3"}, + `options opt1 opt2 opt3 # ignored`: {"opt1", "opt2", "opt3"}, + ` options opt1 opt2 opt3 `: {"opt1", "opt2", "opt3"}, ` options opt1 opt2 opt3 # ignored`: {"opt1", "opt2", "opt3"}, ``: {}, `# ignored`: {}, From 1eadbdd9fadca31c02b6f0aebfbbab4d8c6cf716 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Tue, 6 Sep 2022 22:33:13 +0200 Subject: [PATCH 2/2] Update to go 1.19.1 to address CVE-2022-27664, CVE-2022-32190 From the mailing list: We have just released Go versions 1.19.1 and 1.18.6, minor point releases. These minor releases include 2 security fixes following the security policy: - net/http: handle server errors after sending GOAWAY A closing HTTP/2 server connection could hang forever waiting for a clean shutdown that was preempted by a subsequent fatal error. This failure mode could be exploited to cause a denial of service. Thanks to Bahruz Jabiyev, Tommaso Innocenti, Anthony Gavazzi, Steven Sprecher, and Kaan Onarlioglu for reporting this. This is CVE-2022-27664 and Go issue https://go.dev/issue/54658. - net/url: JoinPath does not strip relative path components in all circumstances JoinPath and URL.JoinPath would not remove `../` path components appended to a relative path. For example, `JoinPath("https://go.dev", "../go")` returned the URL `https://go.dev/../go`, despite the JoinPath documentation stating that `../` path elements are cleaned from the result. Thanks to q0jt for reporting this issue. This is CVE-2022-32190 and Go issue https://go.dev/issue/54385. Release notes: go1.19.1 (released 2022-09-06) includes security fixes to the net/http and net/url packages, as well as bug fixes to the compiler, the go command, the pprof command, the linker, the runtime, and the crypto/tls and crypto/x509 packages. See the Go 1.19.1 milestone on the issue tracker for details. https://github.com/golang/go/issues?q=milestone%3AGo1.19.1+label%3ACherryPickApproved Signed-off-by: Sebastiaan van Stijn --- .github/workflows/.windows.yml | 13 +++++-------- Dockerfile | 2 +- Dockerfile.e2e | 2 +- Dockerfile.simple | 2 +- Dockerfile.windows | 2 +- 5 files changed, 9 insertions(+), 12 deletions(-) diff --git a/.github/workflows/.windows.yml b/.github/workflows/.windows.yml index 3969f2ba58..7b782efc6d 100644 --- a/.github/workflows/.windows.yml +++ b/.github/workflows/.windows.yml @@ -13,10 +13,7 @@ on: default: false env: - GO_VERSION: 1.19 - # FIXME: temporarily using a separate var for this, as go-setup-action expects SemVer - # see https://github.com/actions/setup-go/tree/v3.2.0#supported-version-syntax - GO_VERSION_SEMVER: 1.19.0 + GO_VERSION: 1.19.1 GOTESTLIST_VERSION: v0.2.0 TESTSTAT_VERSION: v0.1.3 WINDOWS_BASE_IMAGE: mcr.microsoft.com/windows/servercore @@ -190,7 +187,7 @@ jobs: name: Set up Go uses: actions/setup-go@v3 with: - go-version: ${{ env.GO_VERSION_SEMVER }} + go-version: ${{ env.GO_VERSION }} - name: Download artifacts uses: actions/download-artifact@v3 @@ -218,7 +215,7 @@ jobs: name: Set up Go uses: actions/setup-go@v3 with: - go-version: ${{ env.GO_VERSION_SEMVER }} + go-version: ${{ env.GO_VERSION }} - name: Install gotestlist run: @@ -390,7 +387,7 @@ jobs: name: Set up Go uses: actions/setup-go@v3 with: - go-version: ${{ env.GO_VERSION_SEMVER }} + go-version: ${{ env.GO_VERSION }} - name: Test integration if: matrix.test == './...' @@ -480,7 +477,7 @@ jobs: name: Set up Go uses: actions/setup-go@v3 with: - go-version: ${{ env.GO_VERSION_SEMVER }} + go-version: ${{ env.GO_VERSION }} - name: Download artifacts uses: actions/download-artifact@v3 diff --git a/Dockerfile b/Dockerfile index d49ef8da6d..918310796e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ ARG CROSS="false" ARG SYSTEMD="false" -ARG GO_VERSION=1.19 +ARG GO_VERSION=1.19.1 ARG DEBIAN_FRONTEND=noninteractive ARG VPNKIT_VERSION=0.5.0 diff --git a/Dockerfile.e2e b/Dockerfile.e2e index 915b05abf6..4a98c61d9f 100644 --- a/Dockerfile.e2e +++ b/Dockerfile.e2e @@ -1,4 +1,4 @@ -ARG GO_VERSION=1.19 +ARG GO_VERSION=1.19.1 FROM golang:${GO_VERSION}-alpine AS base ENV GO111MODULE=off diff --git a/Dockerfile.simple b/Dockerfile.simple index 789e96f264..93bbd3eab8 100644 --- a/Dockerfile.simple +++ b/Dockerfile.simple @@ -5,7 +5,7 @@ # This represents the bare minimum required to build and test Docker. -ARG GO_VERSION=1.19 +ARG GO_VERSION=1.19.1 ARG BASE_DEBIAN_DISTRO="bullseye" ARG GOLANG_IMAGE="golang:${GO_VERSION}-${BASE_DEBIAN_DISTRO}" diff --git a/Dockerfile.windows b/Dockerfile.windows index a3ddfdaa93..9afaec9759 100644 --- a/Dockerfile.windows +++ b/Dockerfile.windows @@ -165,7 +165,7 @@ FROM microsoft/windowsservercore # Use PowerShell as the default shell SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] -ARG GO_VERSION=1.19 +ARG GO_VERSION=1.19.1 ARG GOTESTSUM_VERSION=v1.8.1 ARG GOWINRES_VERSION=v0.2.3 ARG CONTAINERD_VERSION=v1.6.8