cmd/cgo: allow C.malloc(0) always

Because we can, and because it otherwise might crash
the program if we think we're out of memory.

Fixes #6390.

R=golang-dev, iant, minux.ma
CC=golang-dev
https://golang.org/cl/13345048
This commit is contained in:
Russ Cox 2013-09-16 14:04:55 -04:00
parent b2794a1c2e
commit 647eaed93b
3 changed files with 5 additions and 0 deletions

View file

@ -1225,6 +1225,8 @@ Slice GoBytes(char *p, int32_t n) {
extern void runtime_throw(const char *):
void *Cmalloc(size_t n) {
void *p = malloc(n);
if(p == NULL && n == 0)
p = malloc(1);
if(p == NULL)
runtime_throw("runtime: C malloc failed");
return p;