Browse Source

Closes PECL #5944; binding an invalid parameter can lead to segfaults.

Modified patch provided by curt@php.net.
PHP-5.1
Wez Furlong 21 years ago
parent
commit
0bd9518f8c
  1. 12
      ext/pdo/pdo_stmt.c

12
ext/pdo/pdo_stmt.c

@ -328,7 +328,17 @@ static int really_register_bound_param(struct pdo_bound_param_data *param, pdo_s
/* tell the driver we just created a parameter */
if (stmt->methods->param_hook) {
return stmt->methods->param_hook(stmt, pparam, PDO_PARAM_EVT_ALLOC TSRMLS_CC);
if (!stmt->methods->param_hook(stmt, pparam,
PDO_PARAM_EVT_ALLOC TSRMLS_CC)) {
/* driver indicates that the parameter doesn't exist.
* remove it from our hash */
if (pparam->name) {
zend_hash_del(hash, pparam->name, pparam->namelen);
} else {
zend_hash_index_del(hash, pparam->paramno);
}
return 0;
}
}
return 1;

Loading…
Cancel
Save