]> Cypherpunks repositories - gostls13.git/commit
[release-branch.go1.22] cmd/compile: avoid past-the-end pointer when zeroing
authorKeith Randall <khr@golang.org>
Wed, 8 May 2024 15:51:39 +0000 (08:51 -0700)
committerGopher Robot <gobot@golang.org>
Wed, 15 May 2024 17:21:37 +0000 (17:21 +0000)
commit3a842931184426ebb2d5f8605782991bca8b67b8
tree9bd191facaf453a9235b93179d22b9f48b90c311
parent362dcedfdb79804ce538e153cdcb6bb2a5b653ea
[release-branch.go1.22] cmd/compile: avoid past-the-end pointer when zeroing

When we optimize append(s, make([]T, n)...), we have to be careful
not to pass &s[0] + len(s)*sizeof(T) as the argument to memclr, as that
pointer might be past-the-end. This can only happen if n is zero, so
just special-case n==0 in the generated code.

Fixes #67258

Change-Id: Ic680711bb8c38440eba5e759363ef65f5945658b
Reviewed-on: https://go-review.googlesource.com/c/go/+/584116
Reviewed-by: Austin Clements <austin@google.com>
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: Keith Randall <khr@google.com>
(cherry picked from commit 93e3696b5dac778cf638a67616a4a4d521d6fce9)
Reviewed-on: https://go-review.googlesource.com/c/go/+/584315
Auto-Submit: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
src/cmd/compile/internal/walk/assign.go
test/fixedbugs/issue67255.go [new file with mode: 0644]