From 246db498b90f915289f1c6385c3b8f21871f182d Mon Sep 17 00:00:00 2001 From: cuiweixie Date: Wed, 20 Jul 2022 16:34:00 +0800 Subject: [PATCH] cmd/cgo: panic when length too large Fixes #53965 --- src/cmd/cgo/out.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/cmd/cgo/out.go b/src/cmd/cgo/out.go index d6740028da9162..5df9902601a2ee 100644 --- a/src/cmd/cgo/out.go +++ b/src/cmd/cgo/out.go @@ -1669,6 +1669,9 @@ const cBytesDef = ` // freed, such as by calling C.free (be sure to include stdlib.h // if C.free is needed). func _Cfunc_CBytes(b []byte) unsafe.Pointer { + if len(b) > (1<<30) { + panic("length of []byte is larger than 1<<30") + } p := _cgo_cmalloc(uint64(len(b))) pp := (*[1<<30]byte)(p) copy(pp[:], b)