mirror of
https://github.com/golang/go
synced 2024-11-12 09:20:22 -07:00
misc/cgo/errors: fix malloc test for dragonfly
The Dragonfly libc returns a non-zero value for malloc(-1). Fixes #17585. Change-Id: Icfe68011ccbc75c676273ee3c3efdf24a520a004 Reviewed-on: https://go-review.googlesource.com/32050 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
d391dc260a
commit
e24ccfc6fc
@ -11,10 +11,21 @@ import "C"
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
func main() {
|
||||
p := C.malloc(C.size_t(^uintptr(0)))
|
||||
var size C.size_t
|
||||
size--
|
||||
|
||||
// The Dragonfly libc succeeds when asked to allocate
|
||||
// 0xffffffffffffffff bytes, so pass a different value that
|
||||
// causes it to fail.
|
||||
if runtime.GOOS == "dragonfly" {
|
||||
size = C.size_t(0x7fffffff << (32 * (^uintptr(0) >> 63)))
|
||||
}
|
||||
|
||||
p := C.malloc(size)
|
||||
if p == nil {
|
||||
fmt.Println("malloc: C.malloc returned nil")
|
||||
// Just exit normally--the test script expects this
|
||||
|
@ -62,7 +62,7 @@ fi
|
||||
# The malloc.go test should crash.
|
||||
rm -f malloc.out
|
||||
if go run malloc.go >malloc.out 2>&1; then
|
||||
echo "`go run malloc.go` succeeded unexpectedly"
|
||||
echo '`go run malloc.go` succeeded unexpectedly'
|
||||
cat malloc.out
|
||||
rm -f malloc.out
|
||||
exit 1
|
||||
|
Loading…
Reference in New Issue
Block a user