Update to go1.16.6
- Security fix for CVE-2021-34558
This commit is contained in:
parent
755f2e9f59
commit
fb3fb1e87e
@ -106,7 +106,7 @@
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%global go_api 1.16
|
%global go_api 1.16
|
||||||
%global go_version %{go_api}.5
|
%global go_version %{go_api}.6
|
||||||
|
|
||||||
# For rpmdev-bumpspec and releng automation
|
# For rpmdev-bumpspec and releng automation
|
||||||
%global baserelease 1
|
%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
|
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
|
Patch2: 0002-syscall-expose-IfInfomsg.X__ifi_pad-on-s390x.patch
|
||||||
Patch3: 0003-cmd-go-disable-Google-s-proxy-and-sumdb.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
|
# Having documentation separate was broken
|
||||||
Obsoletes: %{name}-docs < 1.1-4
|
Obsoletes: %{name}-docs < 1.1-4
|
||||||
@ -531,6 +529,10 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jul 14 2021 Mike Rochefort <mroche@fedoraproject.org> - 1.16.6-1
|
||||||
|
- Update to go1.16.6
|
||||||
|
- Security fix for CVE-2021-34558
|
||||||
|
|
||||||
* Mon Jun 21 2021 Mike Rochefort <mroche@fedoraproject.org> - 1.16.5-1
|
* Mon Jun 21 2021 Mike Rochefort <mroche@fedoraproject.org> - 1.16.5-1
|
||||||
- Update to go1.16.5
|
- Update to go1.16.5
|
||||||
- Security fix for CVE-2021-33195
|
- Security fix for CVE-2021-33195
|
||||||
|
@ -1,70 +0,0 @@
|
|||||||
From 714d86f88554329d7f134dee318f57c6c0b524a7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lynn Boger <laboger@linux.vnet.ibm.com>
|
|
||||||
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 <laboger@linux.vnet.ibm.com>
|
|
||||||
Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
|
|
||||||
Reviewed-by: Cherry Zhang <cherryyz@google.com>
|
|
||||||
TryBot-Result: Go Bot <gobot@golang.org>
|
|
||||||
(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 {
|
|
Loading…
Reference in New Issue
Block a user