From: Michael Marineau Date: Tue, 3 Jan 2017 08:15:05 +0000 (-0800) Subject: runtime: check sched_getaffinity return value X-Git-Tag: go1.8rc1~38 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=6a1cac27005f5e37c9c4acd0f63121e61b41ae3c;p=gostls13.git runtime: check sched_getaffinity return value Android on ChromeOS uses a restrictive seccomp filter that blocks sched_getaffinity, leading this code to index a slice by -errno. Change-Id: Iec09a4f79dfbc17884e24f39bcfdad305de75b37 Reviewed-on: https://go-review.googlesource.com/34794 Reviewed-by: Ian Lance Taylor Run-TryBot: Ian Lance Taylor --- diff --git a/src/runtime/os_linux.go b/src/runtime/os_linux.go index 213b951a6b..a6efc0e3d1 100644 --- a/src/runtime/os_linux.go +++ b/src/runtime/os_linux.go @@ -91,6 +91,9 @@ func getproccount() int32 { const maxCPUs = 64 * 1024 var buf [maxCPUs / (sys.PtrSize * 8)]uintptr r := sched_getaffinity(0, unsafe.Sizeof(buf), &buf[0]) + if r < 0 { + return 1 + } n := int32(0) for _, v := range buf[:r/sys.PtrSize] { for v != 0 {