]> Cypherpunks repositories - gostls13.git/commit
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)
committerKeith Randall <khr@golang.org>
Wed, 8 May 2024 17:09:06 +0000 (17:09 +0000)
commit93e3696b5dac778cf638a67616a4a4d521d6fce9
treeadf08513087d5c2f8116873b4a9afa37c776b96c
parentad27916c24860576a2aec4cff6a295c340aafe3c
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 #67255

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>
src/cmd/compile/internal/walk/assign.go
test/fixedbugs/issue67255.go [new file with mode: 0644]