]> granicus.if.org Git - php/commitdiff
- Fixed bug #50445 (PDO-ODBC stored procedure call from Solaris 64-bit causes seg...
authorFelipe Pena <felipe@php.net>
Fri, 11 Dec 2009 22:30:46 +0000 (22:30 +0000)
committerFelipe Pena <felipe@php.net>
Fri, 11 Dec 2009 22:30:46 +0000 (22:30 +0000)
  (Original patch by davbrown4 at yahoo dot com)

ext/pdo/pdo_stmt.c

index 55f3ba428046b9ad595cb4632c44f526cfc07a98..c224ab476a28346b04eca8ea99c852c2195795b7 100755 (executable)
@@ -1665,20 +1665,22 @@ static PHP_METHOD(PDOStatement, fetchAll)
 static int register_bound_param(INTERNAL_FUNCTION_PARAMETERS, pdo_stmt_t *stmt, int is_param) /* {{{ */
 {
        struct pdo_bound_param_data param = {0};
+       long param_type = PDO_PARAM_STR;
 
        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|llz!", &param.paramno, &param.parameter, &param.param_type, &param.max_value_len,
+                       "lz|llz!", &param.paramno, &param.parameter, &param_type, &param.max_value_len,
                        &param.driver_params)) {
                if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz|llz!", &param.name,
-                               &param.namelen, &param.parameter, &param.param_type, &param.max_value_len, 
+                               &param.namelen, &param.parameter, &param_type, &param.max_value_len, 
                                &param.driver_params)) {
                        return 0;
                }       
        }
-
+       
+       param.param_type = (int) param_type;
+       
        if (param.paramno > 0) {
                --param.paramno; /* make it zero-based internally */
        } else if (!param.name) {