From 5cb47021ac15f00e54151de0c7aefa03461a980c Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Thu, 9 Sep 2021 22:49:22 +1000 Subject: [PATCH] Fix possible misuse of reflect.StringHeader --- bencode/misc.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) 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 } -- 2.48.1