From: Joel Sing Date: Fri, 22 Mar 2013 15:15:52 +0000 (+1100) Subject: runtime: improve mmap return value checking for netbsd/openbsd X-Git-Tag: go1.1rc2~385 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=28f65bf4a2ca23701f3c24c866b02bc473c0dd1e;p=gostls13.git runtime: improve mmap return value checking for netbsd/openbsd Rather than just checking for ENOMEM, check for a return value of less than 4096, so that we catch other errors such as EACCES and EINVAL. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/7942043 --- diff --git a/src/pkg/runtime/mem_netbsd.c b/src/pkg/runtime/mem_netbsd.c index 63a57b94a3..e5bdac0ef6 100644 --- a/src/pkg/runtime/mem_netbsd.c +++ b/src/pkg/runtime/mem_netbsd.c @@ -50,7 +50,7 @@ runtime·SysReserve(void *v, uintptr n) return v; p = runtime·mmap(v, n, PROT_NONE, MAP_ANON|MAP_PRIVATE, -1, 0); - if(p == (void*)ENOMEM) + if(p < (void*)4096) return nil; return p; } diff --git a/src/pkg/runtime/mem_openbsd.c b/src/pkg/runtime/mem_openbsd.c index 63a57b94a3..e5bdac0ef6 100644 --- a/src/pkg/runtime/mem_openbsd.c +++ b/src/pkg/runtime/mem_openbsd.c @@ -50,7 +50,7 @@ runtime·SysReserve(void *v, uintptr n) return v; p = runtime·mmap(v, n, PROT_NONE, MAP_ANON|MAP_PRIVATE, -1, 0); - if(p == (void*)ENOMEM) + if(p < (void*)4096) return nil; return p; }