From: Ilia Alshanetsky Date: Tue, 20 Nov 2007 14:22:27 +0000 (+0000) Subject: Fixed bug #42978 (mismatch between number of bound params and values causes X-Git-Tag: RELEASE_1_3_1~610 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=48878f2ecda4fc3c0846a6a264a561188daaf3ac;p=php Fixed bug #42978 (mismatch between number of bound params and values causes a crash in pdo_pgsql) --- 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)) {