From 0a38b2cdaf6bac030b1a3c5a895ce681be40862b Mon Sep 17 00:00:00 2001 From: Alex Brainman Date: Fri, 21 Nov 2014 12:15:18 +1100 Subject: [PATCH] [dev.cc] runtime: fix windows goenvs conversion mistake uint16 occupies 2 bytes, not 1 LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/178100043 --- src/runtime/os1_windows.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/runtime/os1_windows.go b/src/runtime/os1_windows.go index abd2297a30..57ea050f26 100644 --- a/src/runtime/os1_windows.go +++ b/src/runtime/os1_windows.go @@ -175,7 +175,7 @@ func goenvs() { n := 0 for p = env; *p != 0; n++ { - p = (*uint16)(add(unsafe.Pointer(p), uintptr(findnullw(p)+1))) + p = (*uint16)(add(unsafe.Pointer(p), uintptr(findnullw(p)+1)*unsafe.Sizeof(*p))) } envs = makeStringSlice(int(n)) @@ -183,7 +183,7 @@ func goenvs() { p = env for i := 0; i < n; i++ { envs[i] = gostringw(p) - p = (*uint16)(add(unsafe.Pointer(p), uintptr(findnullw(p)+1))) + p = (*uint16)(add(unsafe.Pointer(p), uintptr(findnullw(p)+1)*unsafe.Sizeof(*p))) } stdcall1(_FreeEnvironmentStringsW, uintptr(unsafe.Pointer(env))) -- 2.50.0