diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/cmd/cgo/out.go | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/cmd/cgo/out.go b/src/cmd/cgo/out.go index 0c32e4ca1..3f04f1361 100644 --- a/src/cmd/cgo/out.go +++ b/src/cmd/cgo/out.go @@ -1225,7 +1225,10 @@ struct __go_string __go_byte_array_to_string(const void* p, intgo len); struct __go_open_array __go_string_to_byte_array (struct __go_string str); const char *_cgoPREFIX_Cfunc_CString(struct __go_string s) { - return strndup((const char*)s.__data, s.__length); + char *p = malloc(s.__length+1); + memmove(p, s.__data, s.__length); + p[s.__length] = 0; + return p; } struct __go_string _cgoPREFIX_Cfunc_GoString(char *p) { |