From: Matt Joiner Date: Thu, 9 Sep 2021 12:49:22 +0000 (+1000) Subject: Fix possible misuse of reflect.StringHeader X-Git-Tag: v1.32.0~84 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=5cb47021ac15f00e54151de0c7aefa03461a980c;p=btrtrc.git Fix possible misuse of reflect.StringHeader --- diff --git a/bencode/misc.go b/bencode/misc.go index 71199590..3b95afce 100644 --- a/bencode/misc.go +++ b/bencode/misc.go @@ -21,8 +21,10 @@ func bytesAsString(b []byte) string { if len(b) == 0 { return "" } - return *(*string)(unsafe.Pointer(&reflect.StringHeader{ - uintptr(unsafe.Pointer(&b[0])), - len(b), - })) + // See https://github.com/golang/go/issues/40701. + var s string + hdr := (*reflect.StringHeader)(unsafe.Pointer(&s)) + hdr.Data = uintptr(unsafe.Pointer(&b[0])) + hdr.Len = len(b) + return s }