]> granicus.if.org Git - php/commitdiff
- Fixed bug #52699 (PDO bindValue writes long int 32bit enum)
authorFelipe Pena <felipe@php.net>
Wed, 25 Aug 2010 22:03:03 +0000 (22:03 +0000)
committerFelipe Pena <felipe@php.net>
Wed, 25 Aug 2010 22:03:03 +0000 (22:03 +0000)
NEWS
ext/pdo/pdo_stmt.c

diff --git a/NEWS b/NEWS
index 021de80cbd12a480c40aec8e86ffc73d52b009a2..a902870cd85ed93d8c8396de96872573933a168c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -15,6 +15,8 @@
 - Changed the $context parameter on copy() to actually have an effect. (Kalle)
 - Fixed possible crash in mssql_fetch_batch(). (Kalle)
 
+- Fixed bug #52699 (PDO bindValue writes long int 32bit enum).
+  (rein at basefarm dot no)
 - Fixed bug #52681 (mb_send_mail() appends an extra MIME-Version header).
   (Adam)
 - Fixed bug #52674 (FPM Status page returns inconsistent Content-Type headers).
index 2403dfb9114bfa99d12c82f7437131e9fcb1bb69..5c3fedfe10daa23e9a679ebf3e77bea1d80a0984 100755 (executable)
@@ -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", &param.paramno, &param.parameter, &param.param_type)) {
+                       "lz/|l", &param.paramno, &param.parameter, &param_type)) {
                if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz/|l", &param.name,
-                               &param.namelen, &param.parameter, &param.param_type)) {
+                               &param.namelen, &param.parameter, &param_type)) {
                        RETURN_FALSE;
                }
        }
+
+       param.param_type = (int) param_type;
        
        if (param.paramno > 0) {
                --param.paramno; /* make it zero-based internally */