]> granicus.if.org Git - php/commitdiff
Fixed memory leak on unused bound name parameters.
authorIlia Alshanetsky <iliaa@php.net>
Tue, 1 Aug 2006 15:06:01 +0000 (15:06 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Tue, 1 Aug 2006 15:06:01 +0000 (15:06 +0000)
ext/pdo/pdo_stmt.c

index 9996da7ef67332bd459ce5efe66a5613b0a0416b..203774600c16e9f174e564602018a94b97e6f0a3 100755 (executable)
@@ -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(&param, stmt, is_param TSRMLS_CC);
+       if (!really_register_bound_param(&param, 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(&param, stmt, TRUE TSRMLS_CC));
+       if (!really_register_bound_param(&param, stmt, TRUE TSRMLS_CC)) {
+               zval_ptr_dtor(&(param.parameter));
+               RETURN_FALSE;
+       }
+       RETURN_TRUE;
 }
 /* }}} */