Fixed bug #42978 (mismatch between number of bound params and values causes

a crash in pdo_pgsql)
This commit is contained in:
Ilia Alshanetsky 2007-11-20 14:22:27 +00:00
parent a29a9d5a42
commit 48878f2ecd

View file

@ -168,6 +168,11 @@ static int dispatch_param_event(pdo_stmt_t *stmt, enum pdo_param_event event_typ
iterate: iterate:
if (ht) { 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); zend_hash_internal_pointer_reset(ht);
while (SUCCESS == zend_hash_get_current_data(ht, (void**)&param)) { while (SUCCESS == zend_hash_get_current_data(ht, (void**)&param)) {
if (!stmt->methods->param_hook(stmt, param, event_type TSRMLS_CC)) { if (!stmt->methods->param_hook(stmt, param, event_type TSRMLS_CC)) {