From 04323955c1f7724e54d9d70744c28860b565d9a4 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+ndossche@users.noreply.github.com> Date: Tue, 4 Nov 2025 19:59:38 +0100 Subject: [PATCH] pgsql: Fix memory leak when object init fails (#20387) The return value is already overwritten by this point so we do have to clean up the old return value (i.e. dataset) after all. --- ext/pgsql/pgsql.c | 1 + 1 file changed, 1 insertion(+) diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c index 241dc214d8e..96a3cc7e707 100644 --- a/ext/pgsql/pgsql.c +++ b/ext/pgsql/pgsql.c @@ -1875,6 +1875,7 @@ static void php_pgsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, zend_long result_ ZVAL_COPY_VALUE(&dataset, return_value); zend_result obj_initialized = object_init_ex(return_value, ce); if (UNEXPECTED(obj_initialized == FAILURE)) { + zval_ptr_dtor(&dataset); RETURN_THROWS(); } if (!ce->default_properties_count && !ce->__set) {