diff options
author | Felipe Pena <felipe@php.net> | 2010-08-25 22:03:03 +0000 |
---|---|---|
committer | Felipe Pena <felipe@php.net> | 2010-08-25 22:03:03 +0000 |
commit | cbe9f57a17c8646418268fdd4bb64c5b6cd9bad8 (patch) | |
tree | 1dcf1a3d5b9213a38ed742017a6b4b65f9252c37 /ext/pdo | |
parent | 721f6dae57a79ce8e022e811d8cdb24b6c605123 (diff) | |
download | php-git-cbe9f57a17c8646418268fdd4bb64c5b6cd9bad8.tar.gz |
- Fixed bug #52699 (PDO bindValue writes long int 32bit enum)
Diffstat (limited to 'ext/pdo')
-rwxr-xr-x | ext/pdo/pdo_stmt.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/ext/pdo/pdo_stmt.c b/ext/pdo/pdo_stmt.c index 6127a443dc..c57a14a781 100755 --- a/ext/pdo/pdo_stmt.c +++ b/ext/pdo/pdo_stmt.c @@ -1624,18 +1624,20 @@ static int register_bound_param(INTERNAL_FUNCTION_PARAMETERS, pdo_stmt_t *stmt, static PHP_METHOD(PDOStatement, bindValue) { struct pdo_bound_param_data param = {0}; + long param_type = PDO_PARAM_STR; PHP_STMT_GET_OBJ; param.paramno = -1; - param.param_type = PDO_PARAM_STR; if (FAILURE == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, - "lz/|l", ¶m.paramno, ¶m.parameter, ¶m.param_type)) { + "lz/|l", ¶m.paramno, ¶m.parameter, ¶m_type)) { if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz/|l", ¶m.name, - ¶m.namelen, ¶m.parameter, ¶m.param_type)) { + ¶m.namelen, ¶m.parameter, ¶m_type)) { RETURN_FALSE; } } + + param.param_type = (int) param_type; if (param.paramno > 0) { --param.paramno; /* make it zero-based internally */ |