From 48878f2ecda4fc3c0846a6a264a561188daaf3ac Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Tue, 20 Nov 2007 14:22:27 +0000 Subject: [PATCH] Fixed bug #42978 (mismatch between number of bound params and values causes a crash in pdo_pgsql) --- ext/pdo/pdo_stmt.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ext/pdo/pdo_stmt.c b/ext/pdo/pdo_stmt.c index 35f3232c20..d43a0e443c 100755 --- a/ext/pdo/pdo_stmt.c +++ b/ext/pdo/pdo_stmt.c @@ -168,6 +168,11 @@ static int dispatch_param_event(pdo_stmt_t *stmt, enum pdo_param_event event_typ iterate: if (ht) { + if (zend_hash_num_elements(stmt->bound_param_map) != zend_hash_num_elements(ht)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Number of bound paramters %d does not match number of bound values %d", zend_hash_num_elements(stmt->bound_param_map), zend_hash_num_elements(ht)); + return 0; + } + zend_hash_internal_pointer_reset(ht); while (SUCCESS == zend_hash_get_current_data(ht, (void**)¶m)) { if (!stmt->methods->param_hook(stmt, param, event_type TSRMLS_CC)) { -- 2.50.1