From: Alex Brainman Date: Fri, 21 Nov 2014 01:15:18 +0000 (+1100) Subject: [dev.cc] runtime: fix windows goenvs conversion mistake X-Git-Tag: go1.5beta1~2688^2~21 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=0a38b2cdaf6bac030b1a3c5a895ce681be40862b;p=gostls13.git [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 --- 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)))