From f3267836b027120e904efa18a96272a7c0b37a3b Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+ndossche@users.noreply.github.com> Date: Tue, 4 Nov 2025 18:53:46 +0100 Subject: [PATCH] pgsql: Fix memory leak when object init fails 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 241dc214d8ebd..96a3cc7e70735 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) {