From fb3fb1e87e7f39df6684fffe559ba101dcc86f83 Mon Sep 17 00:00:00 2001 From: Michael Rochefort Date: Jul 14 2021 15:19:12 +0000 Subject: Update to go1.16.6 - Security fix for CVE-2021-34558 --- diff --git a/golang.spec b/golang.spec index 546bf01..6ce4f29 100644 --- a/golang.spec +++ b/golang.spec @@ -106,7 +106,7 @@ %endif %global go_api 1.16 -%global go_version %{go_api}.5 +%global go_version %{go_api}.6 # For rpmdev-bumpspec and releng automation %global baserelease 1 @@ -158,8 +158,6 @@ Requires: go-srpm-macros Patch1: 0001-Don-t-use-the-bundled-tzdata-at-runtime-except-for-t.patch Patch2: 0002-syscall-expose-IfInfomsg.X__ifi_pad-on-s390x.patch Patch3: 0003-cmd-go-disable-Google-s-proxy-and-sumdb.patch -# Scheduled backport for go1.16 https://golang.org/cl/316750 by laboger -# Patch4: ppc64x-linker-fix.patch # Having documentation separate was broken Obsoletes: %{name}-docs < 1.1-4 @@ -531,6 +529,10 @@ fi %endif %changelog +* Wed Jul 14 2021 Mike Rochefort - 1.16.6-1 +- Update to go1.16.6 +- Security fix for CVE-2021-34558 + * Mon Jun 21 2021 Mike Rochefort - 1.16.5-1 - Update to go1.16.5 - Security fix for CVE-2021-33195 diff --git a/ppc64x-linker-fix.patch b/ppc64x-linker-fix.patch deleted file mode 100644 index 599912b..0000000 --- a/ppc64x-linker-fix.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 714d86f88554329d7f134dee318f57c6c0b524a7 Mon Sep 17 00:00:00 2001 -From: Lynn Boger -Date: Thu, 29 Apr 2021 16:07:25 -0500 -Subject: [PATCH] [release-branch.go1.16] cmd/link/internal: fix use of DynlinkingGo with ppc64le trampolines - -When creating programs with large text sections on ppc64le, -trampolines are needed for calls that are too far; however -they are not created if the code is generated such that the TOC -register r2 is initialized and maintained in the code because -then the external linker can create the trampolines. Previously -the function DynlinkingGo was used to determine this but in the -case where plugins are used, this could return true even though -r2 is not valid. - -To fix this problem I've added a new function r2Valid which returns -true when the build options indicate that the r2 is -initialized and maintained. Because of the ways that -DynlinkingGo is used I wanted to maintain its previous -behavior. - -Fixes #45927 - -Change-Id: I6d902eba6ad41757aa6474948b79acdbd479cb38 -Reviewed-on: https://go-review.googlesource.com/c/go/+/315289 -Trust: Lynn Boger -Run-TryBot: Lynn Boger -Reviewed-by: Cherry Zhang -TryBot-Result: Go Bot -(cherry picked from commit 9ed736ac2a99aa2e7ef7d8bed3b01ca8b20a6f80) ---- - -diff --git a/src/cmd/link/internal/ppc64/asm.go b/src/cmd/link/internal/ppc64/asm.go -index 602f0b5..539afac 100644 ---- a/src/cmd/link/internal/ppc64/asm.go -+++ b/src/cmd/link/internal/ppc64/asm.go -@@ -642,6 +642,16 @@ - return int64(o2)<<32 | int64(o1) - } - -+// Determine if the code was compiled so that the TOC register R2 is initialized and maintained -+func r2Valid(ctxt *ld.Link) bool { -+ switch ctxt.BuildMode { -+ case ld.BuildModeCArchive, ld.BuildModeCShared, ld.BuildModePIE, ld.BuildModeShared, ld.BuildModePlugin: -+ return true -+ } -+ // -linkshared option -+ return ctxt.IsSharedGoLink() -+} -+ - // resolve direct jump relocation r in s, and add trampoline if necessary - func trampoline(ctxt *ld.Link, ldr *loader.Loader, ri int, rs, s loader.Sym) { - -@@ -649,7 +659,7 @@ - // For internal linking, trampolines are always created for long calls. - // For external linking, the linker can insert a call stub to handle a long call, but depends on having the TOC address in - // r2. For those build modes with external linking where the TOC address is not maintained in r2, trampolines must be created. -- if ctxt.IsExternal() && (ctxt.DynlinkingGo() || ctxt.BuildMode == ld.BuildModeCArchive || ctxt.BuildMode == ld.BuildModeCShared || ctxt.BuildMode == ld.BuildModePIE) { -+ if ctxt.IsExternal() && r2Valid(ctxt) { - // No trampolines needed since r2 contains the TOC - return - } -@@ -703,7 +713,7 @@ - } - } - if ldr.SymType(tramp) == 0 { -- if ctxt.DynlinkingGo() || ctxt.BuildMode == ld.BuildModeCArchive || ctxt.BuildMode == ld.BuildModeCShared || ctxt.BuildMode == ld.BuildModePIE { -+ if r2Valid(ctxt) { - // Should have returned for above cases - ctxt.Errorf(s, "unexpected trampoline for shared or dynamic linking") - } else {