aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
42 hours[release-branch.go1.22] cmd/go/testdata/script: add darwin skips for ↵release-branch.go1.22Than McIntosh
selected buildrepro tests Skip two build reproducibility tests (build_issue48319 and build_plugin_reproducible) on Darwin if GO_BUILDER_NAME is set until issue 64947 can be resolved; on the LUCI darwin longtest builder the more contemporary version of Xcode is doing things that are unfriendly to Go's build reproducibility. For #64947. Fixes #67314 Change-Id: Iebd433ad6dfeb84b6504ae9355231d897d8ae174 Reviewed-on: https://go-review.googlesource.com/c/go/+/565376 Reviewed-by: Cherry Mui <cherryyz@google.com> Reviewed-by: Michael Pratt <mpratt@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> (cherry picked from commit 53708d86b076b7295e93e49b7a19ac7d9082044f) Reviewed-on: https://go-review.googlesource.com/c/go/+/584238 Reviewed-by: Than McIntosh <thanm@google.com> Auto-Submit: Dmitri Shuralyov <dmitshur@google.com> TryBot-Bypass: Dmitri Shuralyov <dmitshur@golang.org>
43 hours[release-branch.go1.22] cmd/go/testdata/script: clear path in ↵Michael Matloob
gotoolchain_issue66175 The gotoolchain_issue66175 script test would fail if a binary named go1.21 or go1.22 was present in the system PATH. Clear the path at the beginning of the test to make it independent of the system path. For #67277 Fixes #67311 Change-Id: I6d9133aee5b20ab116e07b659e8ecf3eb8add4ed Reviewed-on: https://go-review.googlesource.com/c/go/+/584258 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com> (cherry picked from commit a0a6026bb176d25401d7d188f95c1fe769d71db8) Reviewed-on: https://go-review.googlesource.com/c/go/+/584955 Auto-Submit: Dmitri Shuralyov <dmitshur@google.com>
5 days[release-branch.go1.22] cmd/compile: don't combine loads in generated ↵khr@golang.org
equality functions ... if the architecture can't do unaligned loads. We already handle this in a few places, but this particular place was added in CL 399542 and missed this additional restriction. Fixes #67212 (Reroll of CL 583417) Change-Id: I8ee74909341e0af0d51d3761e17ff92e744ecd38 Reviewed-on: https://go-review.googlesource.com/c/go/+/583798 Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Keith Randall <khr@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
5 days[release-branch.go1.22] cmd/go: download 1.X.0 instead of 1.X during ↵Sam Thanawalla
toolchain upgrade. This CL modifies the download behavior when downloading a toolchain for 1.21+. Previously, Go would attempt to download 1.X when upgrading the toolchain which would cause the download to fail for 1.21+ since 1.X is an invalid toolchain. We will attempt to download 1.X.0 since that's likely what the user intended. Additionally, we will also now provide a better error message when the user provides a language version instead of a toolchain version for 1.21+. For #66175 For #62278 Fixes #67236 Change-Id: I28f894290a19d8e3cd220e9d70aeca8f4447e5a1 Reviewed-on: https://go-review.googlesource.com/c/go/+/580217 Reviewed-by: Michael Matloob <matloob@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> (cherry picked from commit 27ed85d4d1702e868730ab6ea2ad6326988c615c) Reviewed-on: https://go-review.googlesource.com/c/go/+/583915
8 days[release-branch.go1.22] go1.22.3go1.22.3Gopher Robot
Change-Id: Ie006d71637a9fa66c225f3fd6cb19dae2a403e76 Reviewed-on: https://go-review.googlesource.com/c/go/+/583856 Auto-Submit: Gopher Robot <gobot@golang.org> Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com>
8 days[release-branch.go1.22] cmd/go: disallow -lto_library in LDFLAGSRoland Shoemaker
The darwin linker allows setting the LTO library with the -lto_library flag. This wasn't caught by our "safe linker flags" check because it was covered by the -lx flag used for linking libraries. This change adds a specific check for excluded flags which otherwise satisfy our existing checks. Loading a mallicious LTO library would allow an attacker to cause the linker to execute abritrary code when "go build" was called. Thanks to Juho Forsén of Mattermost for reporting this issue. Fixes #67119 Fixes #67122 Fixes CVE-2024-24787 Change-Id: I77ac8585efbdbdfd5f39c39ed623b9408a0f9eaf Reviewed-on: https://go-internal-review.googlesource.com/c/go/+/1380 Reviewed-by: Russ Cox <rsc@google.com> Reviewed-by: Damien Neil <dneil@google.com> (cherry picked from commit 9a79141fbbca1105e5c786f15e38741ca7843290) Reviewed-on: https://go-internal-review.googlesource.com/c/go/+/1420 Reviewed-by: Tatiana Bradley <tatianabradley@google.com> Reviewed-on: https://go-review.googlesource.com/c/go/+/583796 Reviewed-by: David Chase <drchase@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
9 days[release-branch.go1.22] Revert "cmd/compile: don't combine loads in ↵Cherry Mui
generated equality functions" This reverts CL 583417. Reason for revert: release branch is currently frozen. Change-Id: Ia6223911e0e124f14509c4bf978d7e37688e3d4c Reviewed-on: https://go-review.googlesource.com/c/go/+/582960 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
9 days[release-branch.go1.22] cmd/compile: don't combine loads in generated ↵khr@golang.org
equality functions ... if the architecture can't do unaligned loads. We already handle this in a few places, but this particular place was added in CL 399542 and missed this additional restriction. Fixes #67212 Change-Id: I45988f11ff3ed45df1c4da3f0931ab1fdb22dbfe Reviewed-on: https://go-review.googlesource.com/c/go/+/583175 Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Auto-Submit: Keith Randall <khr@google.com> Reviewed-by: Keith Randall <khr@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Derek Parker <parkerderek86@gmail.com> Reviewed-by: Cherry Mui <cherryyz@google.com> (cherry picked from commit 3c72dd513c30df60c0624360e98a77c4ae7ca7c8) Reviewed-on: https://go-review.googlesource.com/c/go/+/583417
2024-05-01[release-branch.go1.22] net: check SkipAdditional error resultIan Lance Taylor
This will avoid a potential endless loop for a corrupt DNS packet. For #66754 Fixes #67040 Change-Id: I46591b3f7695bcc88d2312833e45955f8c129d2b Reviewed-on: https://go-review.googlesource.com/c/go/+/578375 Reviewed-by: Damien Neil <dneil@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Commit-Queue: Ian Lance Taylor <iant@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> (cherry picked from commit ddfab21e464b9b4c15fe3dc97eb5d93a4932f434) Reviewed-on: https://go-review.googlesource.com/c/go/+/581816 Reviewed-by: David Chase <drchase@google.com>
2024-04-26[release-branch.go1.22] runtime: use bootstrapRand to initialize hashkeyMichael Pratt
The seed for rand is not initialized until after alginit. Before initialization, rand returns a deterministic sequence, making hashkey deterministic across processes. Switch to bootstrapRand, like other early rand calls, such as initialization of aeskeysched. For #66885. Fixes #66886. Change-Id: I5023a9161232b49fda2ebd1d5f9338bbdd17b1fe Reviewed-on: https://go-review.googlesource.com/c/go/+/580136 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Keith Randall <khr@google.com> (cherry picked from commit 1a3682b4c1e44f334c5cc8fbad3c28b853c2aff2) Reviewed-on: https://go-review.googlesource.com/c/go/+/580018
2024-04-26[release-branch.go1.22] cmd/compile: bail PGO method lookup on interface typesMichael Pratt
Interface types don't have concrete method implementations, so it does not make sense to attempt a lookup. An interface method would not normally appear in a PGO profile as it has no symbol in the final binary. However it can appear if the method was concrete when the profile was collected and it has since been refactored to an interface method in the code being compiled. The guards here (OTYPE, !Alias, !IsInterface) now match noder.linker.relocObj, which does a similar iteration of all methods. For #67016. Fixes #67017. Change-Id: I858c58929c890ac0b2019fbd7c99f683ab63f8bb Reviewed-on: https://go-review.googlesource.com/c/go/+/581436 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com> (cherry picked from commit 508e76197842792f87504d9f031ce4f7bf453c4f) Reviewed-on: https://go-review.googlesource.com/c/go/+/581438
2024-04-26[release-branch.go1.22] cmd/internal/obj/ppc64: fix incorrect int to int64 ↵Paul E. Murphy
conversion when checking MOVD opcodes A type conversion from int to int64 was done in the wrong place causing some MOVD $const, Rx operations to be incorrectly transformed on 32 bit hosts cross-compiling for ppc64x. Fixes #67018 Change-Id: I023ba267a8dac6d6bd22f8146c0d9d2d473bc5c1 Reviewed-on: https://go-review.googlesource.com/c/go/+/580796 Reviewed-by: Mauri de Souza Meneguzzo <mauri870@gmail.com> Reviewed-by: Joedian Reid <joedian@google.com> Reviewed-by: Lynn Boger <laboger@linux.vnet.ibm.com> Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-on: https://go-review.googlesource.com/c/go/+/581455
2024-04-12[release-branch.go1.22] net/http: update bundled golang.org/x/net/http2Dmitri Shuralyov
Pull in CL 578338: db050b07 http2: send correct LastStreamID in stream-caused GOAWAY For #66668. Fixes #66698. Change-Id: Ie7cbc44cd559eb8bc34f6c4ad4ead678ec2f55ef Reviewed-on: https://go-review.googlesource.com/c/go/+/578358 Reviewed-by: Carlos Amedee <carlos@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2024-04-03[release-branch.go1.22] all: tidy dependency versioning after releaseDmitri Shuralyov
Done with: go get golang.org/x/net@internal-branch.go1.22-vendor go mod tidy go mod vendor go generate net/http # zero diff since CL 576076 already did this For CVE-2023-45288. For #65051. For #66298. Change-Id: I2a0d69145d711a73eda92ef5ad4010c7c435f621 Reviewed-on: https://go-review.googlesource.com/c/go/+/576255 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Auto-Submit: Dmitri Shuralyov <dmitshur@google.com> TryBot-Bypass: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Than McIntosh <thanm@google.com>
2024-04-03[release-branch.go1.22] go1.22.2go1.22.2Gopher Robot
Change-Id: I9f348a8ddc79c65be86099839523548edef30095 Reviewed-on: https://go-review.googlesource.com/c/go/+/576118 Auto-Submit: Gopher Robot <gobot@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> TryBot-Bypass: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Than McIntosh <thanm@google.com> Commit-Queue: Gopher Robot <gobot@golang.org>
2024-04-03[release-branch.go1.22] net/http: update bundled golang.org/x/net/http2Damien Neil
Disable cmd/internal/moddeps test, since this update includes PRIVATE track fixes. Fixes CVE-2023-45288 For #65051 Fixes #66298 Change-Id: I5bbf774ebe7651e4bb7e55139d3794bd2b8e8fa8 Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/2197227 Reviewed-by: Tatiana Bradley <tatianabradley@google.com> Run-TryBot: Damien Neil <dneil@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-on: https://go-review.googlesource.com/c/go/+/576076 Auto-Submit: Dmitri Shuralyov <dmitshur@google.com> TryBot-Bypass: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Than McIntosh <thanm@google.com>
2024-03-28[release-branch.go1.22] all: update golang.org/x/netDamien Neil
Pulls in one HTTP/2 fix: ae3c50b55f http2: reject DATA frames after 1xx and before final headers For golang/go#65927 Fixes golang/go#66255 Change-Id: Ib810455297083fc0722a997d0aa675132c38393c Reviewed-on: https://go-review.googlesource.com/c/go/+/574935 Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> TryBot-Bypass: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
2024-03-27[release-branch.go1.22] cmd/compile: don't assume args are always zero-extendedKeith Randall
On amd64, we always zero-extend when loading arguments from the stack. On arm64, we extend based on the type. This causes problems with zeroUpper*Bits, which reports the top bits are zero when they aren't. Fix it to use the type to decide if the top bits are really zero. For tests, only f32 currently fails on arm64. Added other tests just for future-proofing. Fixes #66076 Change-Id: I2f13fb47198e139ef13c9a34eb1edc932eea3ee3 Reviewed-on: https://go-review.googlesource.com/c/go/+/571135 Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Than McIntosh <thanm@google.com> Reviewed-by: Carlos Amedee <carlos@golang.org> Reviewed-by: David Chase <drchase@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> (cherry picked from commit 6bf8b76b95b22e3a7fbcd7cb95bfdb3f42bba60a) Reviewed-on: https://go-review.googlesource.com/c/go/+/573395 Reviewed-by: Cherry Mui <cherryyz@google.com>
2024-03-27[release-branch.go1.22] cmd/compile: fix sign/zero-extension removalKeith Randall
When an opcode generates a known high bit state (typically, a sub-word operation that zeros the high bits), we can remove any subsequent extension operation that would be a no-op. x = (OP ...) y = (ZeroExt32to64 x) If OP zeros the high 32 bits, then we can replace y with x, as the zero extension doesn't do anything. However, x in this situation normally has a sub-word-sized type. The semantics of values in registers is typically that the high bits beyond the value's type size are junk. So although the opcode generating x *currently* zeros the high bits, after x is rewritten to another opcode it may not - rewrites of sub-word-sized values can trash the high bits. To fix, move the extension-removing rules to late lower. That ensures that their arguments won't be rewritten to change their high bits. I am also worried about spilling and restoring. Spilling and restoring doesn't preserve the high bits, but instead sets them to a known value (often 0, but in some cases it could be sign-extended). I am unable to come up with a case that would cause a problem here, so leaving for another time. Update #66076 Change-Id: I3b5c091b3b3278ccbb7f11beda8b56f4b6d3fde7 Reviewed-on: https://go-review.googlesource.com/c/go/+/568616 Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> (cherry picked from commit a46ecdca36b2359e7496c6d694703a9a9706d760) Reviewed-on: https://go-review.googlesource.com/c/go/+/573375
2024-03-27[release-branch.go1.22] encoding/gob: make x509.Certificate marshalable againRuss Cox
The OID type is not exported data like most of the other x509 structs. Using it in x509.Certificate made Certificate not gob-compatible anymore, which breaks real-world code. As a temporary fix, make gob ignore that field, making it work as well as it did in Go 1.21. For Go 1.23, we anticipate adding a proper fix and removing the gob workaround. See #65633 and #66249 for more details. For #66249. For #65633. Fixes #66273. Change-Id: Idd1431d15063b3009e15d0565cd3120b9fa13f61 Reviewed-on: https://go-review.googlesource.com/c/go/+/571095 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Rob Pike <r@golang.org> Reviewed-by: Roland Shoemaker <roland@golang.org> Reviewed-on: https://go-review.googlesource.com/c/go/+/571715 Reviewed-by: David Chase <drchase@google.com>
2024-03-27[release-branch.go1.22] cmd/go/internal/modfetch: pass "-c" arguments to git ↵Bryan C. Mills
before subcommands I accidentally transposed the arguments in CL 556358, causing the shallow 'git fetch' attempt to always fail. That didn't break any tests because we fall back to a full fetch, which works for nearly all real Git servers, and we didn't have a test that checked for shallow fetches. Tested manually using: GOPROXY=direct go mod download -x -json gerrit.wikimedia.org/r/mediawiki@v0.0.0-20240202145822-67da0cbcfdf7 (I'm still thinking about how to add a proper regression test.) Fixes #66256. Updates #66147. Change-Id: I0bb17283bae856f369fd24f29375e507d0999933 Reviewed-on: https://go-review.googlesource.com/c/go/+/569422 Auto-Submit: Bryan Mills <bcmills@google.com> Reviewed-by: Michael Matloob <matloob@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Run-TryBot: Bryan Mills <bcmills@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> (cherry picked from commit 2ab9218c86ed625362df5060f64fcd59398a76f3) Reviewed-on: https://go-review.googlesource.com/c/go/+/570737 Reviewed-by: Sam Thanawalla <samthanawalla@google.com>
2024-03-27[release-branch.go1.22] runtime: fix EvFrequency event value on Windows in ↵Michael Anthony Knyszek
the new tracer The value produced for the EvFrequency event on Windows is missing the fact that the cputicks clock gets divided. This results in durations that are consistently wrong by the same factor (about 256). For #65997. Fixes #66201. Change-Id: I930cbfce3499d435c20699f41c11e3227d84f911 Reviewed-on: https://go-review.googlesource.com/c/go/+/567937 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Michael Knyszek <mknyszek@google.com> Reviewed-by: Michael Pratt <mpratt@google.com> (cherry picked from commit 707eba9b941230be1afe809466afa3465ed60fdb) Reviewed-on: https://go-review.googlesource.com/c/go/+/570195 Reviewed-by: Than McIntosh <thanm@google.com>
2024-03-26[release-branch.go1.22] cmd/link/internal/riscv64: generate local text ↵Joel Sing
symbols for R_RISCV_CALL Correctly generate local text symbols needed for R_RISCV_CALL when external linking. R_RISCV_CALL was added in CL #520095 as a way of marking AUIPC+JALR pairs, instead of overloading R_RISCV_PCREL_ITYPE. However, genSymsLate was not updated to generate local text symbols for the new relocation type, leading to HI20 symbol lookup failures. This issue is detected by cmd/internal/obj/riscv.TestLargeCall, however this is unfortunately skipped in short mode. Fixes #66060 Change-Id: I8ee0f13791e0628f31657bf7dae2be8482b689b5 Reviewed-on: https://go-review.googlesource.com/c/go/+/567375 Reviewed-by: Mauri de Souza Meneguzzo <mauri870@gmail.com> Reviewed-by: Carlos Amedee <carlos@golang.org> Run-TryBot: Joel Sing <joel@sing.id.au> Reviewed-by: Cherry Mui <cherryyz@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> (cherry picked from commit b5a64ba62eafe5dee13562091ca03aef6cac87b6) Reviewed-on: https://go-review.googlesource.com/c/go/+/568157 Reviewed-by: Than McIntosh <thanm@google.com>
2024-03-26[release-branch.go1.22] go/types, types2: handle Alias types in substitutionRobert Griesemer
Fixes #65858. For #65778. // for x/tools/cmd/gotype Change-Id: I67d4644b28e831926fc6c233098aa1755c57162f Reviewed-on: https://go-review.googlesource.com/c/go/+/565835 Auto-Submit: Robert Griesemer <gri@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Robert Findley <rfindley@google.com> Reviewed-by: Robert Griesemer <gri@google.com> Reviewed-on: https://go-review.googlesource.com/c/go/+/565840 Run-TryBot: Robert Griesemer <gri@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2024-03-26[release-branch.go1.22] cmd/compile: fix early deadcode with label statementCuong Manh Le
CL 517775 moved early deadcode into unified writer. with new way to handle dead code with label statement involved: any statements after terminating statement will be considered dead until next label statement. However, this is not safe, because code after label statement may still refer to dead statements between terminating and label statement. It's only safe to remove statements after terminating *and* label one. Fixes #66134 Change-Id: Idb630165240931fad50789304a9e4535f51f56e2 Reviewed-on: https://go-review.googlesource.com/c/go/+/565596 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Keith Randall <khr@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com> Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com> Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-on: https://go-review.googlesource.com/c/go/+/569717 Reviewed-by: Michael Knyszek <mknyszek@google.com>
2024-03-26[release-branch.go1.22] cmd/compile: fix copying SSA-able variables optimizationCuong Manh Le
CL 541715 added an optimization to copy SSA-able variables. When handling m[k] = append(m[k], ...) case, it uses ir.SameSafeExpr to check that m[k] expressions are the same, then doing type assertion to convert the map index to ir.IndexExpr node. However, this assertion is not safe for m[k] expression in append(m[k], ...), since it may be wrapped by ir.OCONVNOP node. Fixing this by un-wrapping any ir.OCONVNOP before doing type assertion. Fixes #66178 Change-Id: I9ff7165ab97bc7f88d0e9b7b31604da19a8ca206 Reviewed-on: https://go-review.googlesource.com/c/go/+/569716 Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Matthew Dempsky <mdempsky@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Knyszek <mknyszek@google.com> Reviewed-on: https://go-review.googlesource.com/c/go/+/569818 Reviewed-by: David Chase <drchase@google.com>
2024-03-26[release-branch.go1.22] cmd/internal/obj/ppc64: don't modify runtime.elf_* ↵Paul E. Murphy
symbols The runtime.elf_* symbols are assembly functions which are used to support the gcc/llvm -Os option when used with cgo. When compiling Go for shared code, we attempt to strip out the TOC regenation code added by the go assembler for these symbols. This causes the symbol to no longer appear as an assembly function which causes problems later on when handling other implicit symbols. Avoid adding a TOC regeneration prologue to these functions to avoid this issue. Fixes #66412 Change-Id: Icbf8e4438d177082a57bb228e39b232e7a0d7ada Reviewed-on: https://go-review.googlesource.com/c/go/+/571835 Reviewed-by: Than McIntosh <thanm@google.com> Run-TryBot: Paul Murphy <murp@ibm.com> Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Lynn Boger <laboger@linux.vnet.ibm.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-on: https://go-review.googlesource.com/c/go/+/572875
2024-03-21[release-branch.go1.22] cmd/go: respect -coverpkg for unselected no-test ↵Than McIntosh
packages This patch fixes a bug in the code that reports coverage percentages and/or profiles for packages without tests. Specifically, the code added as part of the fix for issue 24570 (in CL 495447) didn't properly consider the -coverpkg selection and would look for the build action meta-data file for a package that wasn't actually selected for coverage. Updates #65653. Fixes #66137. Change-Id: I66ffac11783c00a8cbd855fd05b9a90e4e0ed402 Reviewed-on: https://go-review.googlesource.com/c/go/+/568835 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Bryan Mills <bcmills@google.com> (cherry picked from commit 2b22fc10459dff0fb4b3e5b08bc14ffb349aa4dd) Reviewed-on: https://go-review.googlesource.com/c/go/+/569575
2024-03-05[release-branch.go1.22] go1.22.1go1.22.1Gopher Robot
Change-Id: I9db641e2a029c4c9fa72d7b423b2b6b7f113d9a2 Reviewed-on: https://go-review.googlesource.com/c/go/+/569257 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Carlos Amedee <carlos@golang.org> Auto-Submit: Gopher Robot <gobot@golang.org> Reviewed-by: Michael Knyszek <mknyszek@google.com>
2024-03-05[release-branch.go1.22] net/textproto, mime/multipart: avoid unbounded read ↵Damien Neil
in MIME header mime/multipart.Reader.ReadForm allows specifying the maximum amount of memory that will be consumed by the form. While this limit is correctly applied to the parsed form data structure, it was not being applied to individual header lines in a form. For example, when presented with a form containing a header line that never ends, ReadForm will continue to read the line until it runs out of memory. Limit the amount of data consumed when reading a header. Fixes CVE-2023-45290 Fixes #65850 For #65383 Change-Id: I7f9264d25752009e95f6b2c80e3d76aaf321d658 Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/2134435 Reviewed-by: Roland Shoemaker <bracewell@google.com> Reviewed-by: Tatiana Bradley <tatianabradley@google.com> Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/2174345 Reviewed-by: Carlos Amedee <amedee@google.com> Reviewed-on: https://go-review.googlesource.com/c/go/+/569237 Reviewed-by: Carlos Amedee <carlos@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Michael Knyszek <mknyszek@google.com>
2024-03-05[release-branch.go1.22] net/http, net/http/cookiejar: avoid subdomain ↵Damien Neil
matches on IPv6 zones When deciding whether to forward cookies or sensitive headers across a redirect, do not attempt to interpret an IPv6 address as a domain name. Avoids a case where a maliciously-crafted redirect to an IPv6 address with a scoped addressing zone could be misinterpreted as a within-domain redirect. For example, we could interpret "::1%.www.example.com" as a subdomain of "www.example.com". Thanks to Juho Nurminen of Mattermost for reporting this issue. Fixes CVE-2023-45289 Fixes #65859 For #65065 Change-Id: I8f463f59f0e700c8a18733d2b264a8bcb3a19599 Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/2131938 Reviewed-by: Tatiana Bradley <tatianabradley@google.com> Reviewed-by: Roland Shoemaker <bracewell@google.com> Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/2174344 Reviewed-by: Carlos Amedee <amedee@google.com> Reviewed-on: https://go-review.googlesource.com/c/go/+/569236 Reviewed-by: Carlos Amedee <carlos@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Michael Knyszek <mknyszek@google.com>
2024-03-05[release-branch.go1.22] crypto/x509: make sure pub key is non-nil before ↵Roland Shoemaker
interface conversion alreadyInChain assumes all keys fit a interface which contains the Equal method (which they do), but this ignores that certificates may have a nil key when PublicKeyAlgorithm is UnknownPublicKeyAlgorithm. In this case alreadyInChain panics. Check that the key is non-nil as part of considerCandidate (we are never going to build a chain containing UnknownPublicKeyAlgorithm anyway). For #65390 Fixes #65831 Fixes CVE-2024-24783 Change-Id: Ibdccc0a487e3368b6812be35daad2512220243f3 Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/2137282 Reviewed-by: Damien Neil <dneil@google.com> Run-TryBot: Roland Shoemaker <bracewell@google.com> Reviewed-by: Tatiana Bradley <tatianabradley@google.com> Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/2174343 Reviewed-by: Carlos Amedee <amedee@google.com> Reviewed-by: Roland Shoemaker <bracewell@google.com> Reviewed-on: https://go-review.googlesource.com/c/go/+/569235 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Michael Knyszek <mknyszek@google.com> Reviewed-by: Carlos Amedee <carlos@golang.org>
2024-02-28[release-branch.go1.22] net/http: add missing call to decConnsPerHostJulian Tibble
A recent change to Transport.dialConnFor introduced an early return that skipped dialing. This path did not call decConnsPerHost, which can cause subsequent HTTP calls to hang if Transport.MaxConnsPerHost is set. For #65705 Fixes #65759 Change-Id: I157591114b02a3a66488d3ead7f1e6dbd374a41c Reviewed-on: https://go-review.googlesource.com/c/go/+/564036 Reviewed-by: Damien Neil <dneil@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Damien Neil <dneil@google.com> Reviewed-by: Than McIntosh <thanm@google.com> (cherry picked from commit 098a87fb1930b9ef99d394fe1bca75f1bd74ce8d) Reviewed-on: https://go-review.googlesource.com/c/go/+/566536 Reviewed-by: Carlos Amedee <carlos@golang.org>
2024-02-28[release-branch.go1.22] html/template: escape additional tokens in ↵Roland Shoemaker
MarshalJSON errors Escape "</script" and "<!--" in errors returned from MarshalJSON errors when attempting to marshal types in script blocks. This prevents any user controlled content from prematurely terminating the script block. Updates #65697 Fixes #65969 Change-Id: Icf0e26c54ea7d9c1deed0bff11b6506c99ddef1b Reviewed-on: https://go-review.googlesource.com/c/go/+/564196 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Damien Neil <dneil@google.com> (cherry picked from commit ccbc725f2d678255df1bd326fa511a492aa3a0aa) Reviewed-on: https://go-review.googlesource.com/c/go/+/567535 Reviewed-by: Carlos Amedee <carlos@golang.org>
2024-02-28[release-branch.go1.22] net: work around runtime scheduler starvation on js ↵Bryan C. Mills
and wasip1 For #65883. Updates #65177. Updates #65178. Updates #64321. Change-Id: I698fd3b688c7dfbde692eb7c29cbdafc89e7ca32 Cq-Include-Trybots: luci.golang.try:go1.22-js-wasm,go1.22-wasip1-wasm_wasmtime,go1.22-wasip1-wasm_wazero Reviewed-on: https://go-review.googlesource.com/c/go/+/557037 Auto-Submit: Bryan Mills <bcmills@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Damien Neil <dneil@google.com> (cherry picked from commit f19f31f2e7c136a8dae03cbfe4f8ebbb8b54569b) Reviewed-on: https://go-review.googlesource.com/c/go/+/566175 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
2024-02-28[release-branch.go1.22] net/mail: properly handle special characters in ↵Roland Shoemaker
phrase and obs-phrase Fixes a couple of misalignments with RFC 5322 which introduce significant diffs between (mostly) conformant parsers. This change reverts the changes made in CL50911, which allowed certain special RFC 5322 characters to appear unquoted in the "phrase" syntax. It is unclear why this change was made in the first place, and created a divergence from comformant parsers. In particular this resulted in treating comments in display names incorrectly. Additionally properly handle trailing malformed comments in the group syntax. For #65083 Fixed #65849 Change-Id: I00dddc044c6ae3381154e43236632604c390f672 Reviewed-on: https://go-review.googlesource.com/c/go/+/555596 Reviewed-by: Damien Neil <dneil@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-on: https://go-review.googlesource.com/c/go/+/566215 Reviewed-by: Carlos Amedee <carlos@golang.org>
2024-02-28[release-branch.go1.22] cmd/go/internal/modcmd: correctly filter out main ↵Michael Matloob
modules in verify This change fixes a bug where we incorrectly filtered out the main modules from the beginning of the build list before verifying them. We made the assumption that the first MainModules.Len() entries of the build list were the main modules, but now it can contain the go and toolchain version entries, so removing the first MainModules.Len() entries could leave main module names in the build list if any of their names sorted after the string 'go'. For #62663 Fixes #65852 Change-Id: I35ab6857a556f58d306303322afe24c48fc8b38f Reviewed-on: https://go-review.googlesource.com/c/go/+/565378 Reviewed-by: Bryan Mills <bcmills@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> (cherry picked from commit 3f60da7944352d7f2d4a04830c0612457643016c) Reviewed-on: https://go-review.googlesource.com/c/go/+/565775 TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Michael Matloob <matloob@golang.org>
2024-02-27[release-branch.go1.22] cmd/trace/v2,internal/trace: use correct frame for ↵Nick Ripley
identifying goroutines To determine the identity of a goroutine for displaying in the trace UI, we should use the root frame from a call stack. This will be the starting function for the goroutine and is the same for each call stack from a given goroutine. The new tracer no longer includes starting PCs for goroutines which existed at the start of tracing, so we can't use a PC for grouping together goroutines any more. Instead, we just use the name of the entry function for grouping. For #65574 Fixes #65577 Change-Id: I5324653316f1acf0ab90c30680f181060ea45dd7 Reviewed-on: https://go-review.googlesource.com/c/go/+/562455 Reviewed-by: Michael Knyszek <mknyszek@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com> (cherry picked from commit a51713103b5769a792b691e313254b7806855fa6) Reviewed-on: https://go-review.googlesource.com/c/go/+/562558 Reviewed-by: Michael Pratt <mpratt@google.com>
2024-02-27[release-branch.go1.22] go/types, types2: ensure that Alias.actual is set in ↵Rob Findley
NewAlias Types returned by the go/types API must be immutable (or at least concurrency safe), but NewAlias returned an alias without actual set. Ensure that actual is set by unaliasing. Also make some superficial simplifications to unalias, and avoid indirection where unnecessary. Fixes golang/go#65728 Change-Id: Ic9a020da5accf9032056a924b65c9e9e08cb2e0a Reviewed-on: https://go-review.googlesource.com/c/go/+/560915 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Robert Griesemer <gri@google.com> (cherry picked from commit 10a65649a3b2e34ffe8e4202bfa3df851cea0fb4) Reviewed-on: https://go-review.googlesource.com/c/go/+/564356
2024-02-27[release-branch.go1.22] runtime/internal/atomic: correct GOARM=7 guard at a ↵Cherry Mui
DMB instruction CL 525637 changed to the guard of DMB instruction from the compiled-in runtime.goarm value to GOARM_7 macro and CPU feature detection. It missed a place where runtime.goarm is loaded to a register and reused later. This CL corrects the condition. Updates #65601. Fixes #65760. Change-Id: I2ddefd03a1eb1048dbec0254c6e234c65b054279 Reviewed-on: https://go-review.googlesource.com/c/go/+/564855 Run-TryBot: Cherry Mui <cherryyz@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Keith Randall <khr@golang.org> (cherry picked from commit a0226c5680f3ce6b0d8a8341f8c69611f3008393) Reviewed-on: https://go-review.googlesource.com/c/go/+/567555 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> TryBot-Bypass: Carlos Amedee <carlos@golang.org>
2024-02-27[release-branch.go1.22] cmd/compile: make jump table symbol staticCherry Mui
The jump table symbol is accessed only from the function symbol (in the same package), so it can be static. Also, if the function is DUPOK and it is, somehow, compiled differently in two different packages, the linker must choose the jump table symbol associated to the function symbol it chose. Currently the jump table symbol is DUPOK, so that is not guaranteed. Making it static will guarantee that, as each copy of the function symbol refers to its own jump table symbol. Updates #65783. Fixes #65818. Change-Id: I27e051d01ef585d07700b75d4dfac5768f16441e Reviewed-on: https://go-review.googlesource.com/c/go/+/565535 Reviewed-by: Keith Randall <khr@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Keith Randall <khr@golang.org> (cherry picked from commit 290835298067014e906c540d64dcaa706d66b2ce) Reviewed-on: https://go-review.googlesource.com/c/go/+/566475
2024-02-16[release-branch.go1.22] cmd/compile: fail noder.LookupFunc gracefully if ↵Michael Pratt
function generic PGO uses noder.LookupFunc to look for devirtualization targets in export data. LookupFunc does not support type-parameterized functions, and will currently fail the build when attempting to lookup a type-parameterized function because objIdx is passed the wrong number of type arguments. This doesn't usually come up, as a PGO profile will report a generic function with a symbol name like Func[.go.shape.foo]. In export data, this is just Func, so when we do LookupFunc("Func[.go.shape.foo]") lookup simply fails because the name doesn't exist. However, if Func is not generic when the profile is collected, but the source has since changed to make Func generic, then LookupFunc("Func") will find the object successfully, only to fail the build because we failed to provide type arguments. Handle this with a objIdxMayFail, which allows graceful failure if the object requires type arguments. Bumping the language version to 1.21 in pgo_devirtualize_test.go is required for type inference of the uses of mult.MultFn in cmd/compile/internal/test/testdata/pgo/devirtualize/devirt_test.go. For #65615. Fixes #65618. Change-Id: I84d9344840b851182f5321b8f7a29a591221b29f Reviewed-on: https://go-review.googlesource.com/c/go/+/562737 Reviewed-by: Cherry Mui <cherryyz@google.com> Reviewed-by: Matthew Dempsky <mdempsky@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> (cherry picked from commit 532c6f1c8d724975f578c8ec519f1f5b07d949da) Reviewed-on: https://go-review.googlesource.com/c/go/+/563016
2024-02-16[release-branch.go1.22] cmd/compile: accept -lang=go1 as -lang=go1.0Matthew Dempsky
Fixes #65619. Change-Id: I55fef8cf7be4654c7242462d45f12999e0c91c02 Reviewed-on: https://go-review.googlesource.com/c/go/+/562322 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Bryan Mills <bcmills@google.com> (cherry picked from commit 08370dcd9af8122956fc3ab024889c5357fffd5a) Reviewed-on: https://go-review.googlesource.com/c/go/+/562815
2024-02-16[release-branch.go1.22] runtime: don't call traceReadCPU on the system stackMichael Pratt
traceReadCPU calls profBuf.read, which does a raceacquire. g0 does not have a race context, so this crashes when running on the system stack. We could borrow a race context, but it is simpler to just move traceReadCPU off of the system stack. For #65607. Fixes #65644. Change-Id: I335155b96d683aebb92b2f4e1eea063dd139f2d5 Reviewed-on: https://go-review.googlesource.com/c/go/+/562996 Auto-Submit: Michael Pratt <mpratt@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Knyszek <mknyszek@google.com> (cherry picked from commit 9fa153b729969855fcb694e12c16e20b1407ed9c) Reviewed-on: https://go-review.googlesource.com/c/go/+/562559
2024-02-16[release-branch.go1.22] cmd/cgo/internal/testsanitizers: disable location ↵Michael Anthony Knyszek
checking for clang Pending a resolution to #65606, this CL marks clang's ASAN runtime as unable to symbolize stack traces to unblock the LUCI clang builder. For #65606. For #65469. Fixes #65641. Change-Id: I649773085aff30e5703e7f7ac2c72a0430a015c2 Cq-Include-Trybots: luci.golang.try:go1.22-linux-amd64-clang15 Reviewed-on: https://go-review.googlesource.com/c/go/+/562675 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> (cherry picked from commit d94ab597af9b3f8e8ba371023314d80f6b3be5a5) Reviewed-on: https://go-review.googlesource.com/c/go/+/563015
2024-02-08[release-branch.go1.22] internal/testenv: support the LUCI mobile builders ↵Michael Anthony Knyszek
in tests This change updates the testenv tests to correctly match on future LUCI builder names for mobile builders. This isn't a problem today because those haven't been set up yet, but the builder names are structured and it's clear where the modifiers will appear. Might as well set them up now. For #65473. Fixes #65474. Change-Id: I244b88a62a90312c0f3ff2360527d58531070362 Reviewed-on: https://go-review.googlesource.com/c/go/+/558597 Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Bryan Mills <bcmills@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> (cherry picked from commit 5c7c24ce827b10982245951f6c2b1bbf0abc5aae) Reviewed-on: https://go-review.googlesource.com/c/go/+/560536
2024-02-08[release-branch.go1.22] internal/testenv: allow "-noopt" anywhere in builder ↵Michael Anthony Knyszek
name in test testenv's TestHasGoBuild test is supposed to allow noopt builders to not have go build, but the pattern match is failing on the LUCI builders where a test shard might have an additional "-test_only" suffix in the builder name. Furthermore, in the LUCI world, "run mods" (the builder type suffixes) are supposed to be well-defined and composable, so it doesn't make sense to restrict "-noopt" to the builder suffix anyway. This change modifies the test to allow "-noopt" to appear anywhere in the builder name when checking if it's running on a noopt builder. For #65470. Fixes #65471. Change-Id: I393818e3e8e452c7b0927cbc65726d552aa8ff8e Reviewed-on: https://go-review.googlesource.com/c/go/+/558596 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Bryan Mills <bcmills@google.com> (cherry picked from commit 93f0c0b25e7ea8ae7c2d5df32c6083cfabf2ffc2) Reviewed-on: https://go-review.googlesource.com/c/go/+/560696
2024-02-07[release-branch.go1.22] spec: fix typo in year (it's 2024 now)Robert Griesemer
While at it, set the date to the Go 1.22 release date. Change-Id: I03872626e500433eb63786d24c67810c8c6289f4 Reviewed-on: https://go-review.googlesource.com/c/go/+/562337 Auto-Submit: Robert Griesemer <gri@google.com> Reviewed-by: Robert Griesemer <gri@google.com> Reviewed-by: Robert Findley <rfindley@google.com> Reviewed-by: Carlos Amedee <carlos@golang.org> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> TryBot-Bypass: Robert Griesemer <gri@google.com> Reviewed-on: https://go-review.googlesource.com/c/go/+/562320 Reviewed-by: Russ Cox <rsc@golang.org>
2024-02-06[release-branch.go1.22] go1.22.0go1.22.0Gopher Robot
Change-Id: If7b9fa19ee424d94e1c259e1867b89e8bda7fcde Reviewed-on: https://go-review.googlesource.com/c/go/+/562276 Auto-Submit: Gopher Robot <gobot@golang.org> Reviewed-by: Michael Knyszek <mknyszek@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com>
2024-02-02[release-branch.go1.22] cmd/go/internal/generate: call modload.InitWorkFileMichael Matloob
This is necessary for go generate to enter workspace mode for recognizing package paths in the workspace. For #56098 Fixes #65352 Change-Id: I25f68de24f4189259353f63194823516e9d3d505 Reviewed-on: https://go-review.googlesource.com/c/go/+/559195 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Bryan Mills <bcmills@google.com> (cherry picked from commit b91bad78199aaf8baeb66cb8a30f51b89b8f90ee) Reviewed-on: https://go-review.googlesource.com/c/go/+/559236