From 53cf11e6df4e2f0bbcdf8e26feed74d011b0e9c1 Mon Sep 17 00:00:00 2001 From: Rongsong Shen Date: Fri, 17 Jul 2026 17:15:48 +0800 Subject: [PATCH] fix memory leak when initialize obj fail --- src/create.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/create.c b/src/create.c index 0a01b8c..46866bc 100644 --- a/src/create.c +++ b/src/create.c @@ -42,14 +42,17 @@ var makeInstance(typeinfo_t* type, ...) obj = objAlloc(type, type->dataSize(ap1)); va_end(ap1); - if (obj != NULL) { - rc = type->init(obj, ap); + if (obj == NULL) { + va_end(ap); + return NULL; } + + rc = type->init(obj, ap); va_end(ap); if (rc < 0) { - destroy(obj); + destroy(RTTI_OBJ_TO_DATA(void, obj)); return NULL; }