From 7d6ccee48ec62186ef396adbe37ceb59bd89083e Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Mon, 13 Jul 2026 10:17:21 +0900 Subject: [PATCH] Check sqlite3_malloc64 result in Deserialize --- sqlite3_opt_serialize.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sqlite3_opt_serialize.go b/sqlite3_opt_serialize.go index 51dd9c8..60019bd 100644 --- a/sqlite3_opt_serialize.go +++ b/sqlite3_opt_serialize.go @@ -60,6 +60,9 @@ func (c *SQLiteConn) Deserialize(b []byte, schema string) error { defer C.free(unsafe.Pointer(zSchema)) tmpBuf := (*C.uchar)(C.sqlite3_malloc64(C.sqlite3_uint64(len(b)))) + if tmpBuf == nil && len(b) > 0 { + return fmt.Errorf("deserialize failed: out of memory") + } copy(unsafe.Slice((*byte)(unsafe.Pointer(tmpBuf)), len(b)), b) rc := C.sqlite3_deserialize(c.db, zSchema, tmpBuf, C.sqlite3_int64(len(b)),