From 2b5a53d6b6a9d452a9370fd7c6308a5d083087f7 Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Tue, 1 Aug 2006 15:06:01 +0000 Subject: [PATCH] Fixed memory leak on unused bound name parameters. --- ext/pdo/pdo_stmt.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ext/pdo/pdo_stmt.c b/ext/pdo/pdo_stmt.c index 9996da7ef6..203774600c 100755 --- a/ext/pdo/pdo_stmt.c +++ b/ext/pdo/pdo_stmt.c @@ -1538,7 +1538,11 @@ static int register_bound_param(INTERNAL_FUNCTION_PARAMETERS, pdo_stmt_t *stmt, } ZVAL_ADDREF(param.parameter); - return really_register_bound_param(¶m, stmt, is_param TSRMLS_CC); + if (!really_register_bound_param(¶m, stmt, is_param TSRMLS_CC)) { + zval_ptr_dtor(&(param.parameter)); + return 0; + } + return 1; } /* }}} */ /* {{{ proto bool PDOStatement::bindValue(mixed $paramno, mixed $param [, int $type ]) @@ -1567,7 +1571,11 @@ static PHP_METHOD(PDOStatement, bindValue) } ZVAL_ADDREF(param.parameter); - RETURN_BOOL(really_register_bound_param(¶m, stmt, TRUE TSRMLS_CC)); + if (!really_register_bound_param(¶m, stmt, TRUE TSRMLS_CC)) { + zval_ptr_dtor(&(param.parameter)); + RETURN_FALSE; + } + RETURN_TRUE; } /* }}} */ -- 2.50.1