]> granicus.if.org Git - php/commitdiff
sigh... need to include the null byte in hash keys
authorGeorge Schlossnagle <gschlossnagle@php.net>
Thu, 20 May 2004 19:19:04 +0000 (19:19 +0000)
committerGeorge Schlossnagle <gschlossnagle@php.net>
Thu, 20 May 2004 19:19:04 +0000 (19:19 +0000)
ext/pdo/pdo_stmt.c

index b6aefbfc41fd748c0b44063026cb1772fb7ce285..9849f3b53c5ae918be0274ee8346ef4d8a9354f0 100755 (executable)
@@ -502,6 +502,7 @@ 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};
+       int name_strlen;
 
        param.paramno = -1;
        param.param_type = PDO_PARAM_STR;
@@ -509,7 +510,7 @@ static int register_bound_param(INTERNAL_FUNCTION_PARAMETERS, pdo_stmt_t *stmt,
        if (stmt->dbh->placeholders_can_be_strings || !is_param) {
                if (FAILURE == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                                        ZEND_NUM_ARGS() TSRMLS_CC, "sz|llz!",
-                                       &param.name, &param.namelen, &param.parameter, &param.param_type,
+                                       &param.name, &name_strlen, &param.parameter, &param.param_type,
                                        &param.max_value_len,
                                        &param.driver_params)) {
                        if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lz|llz!", &param.paramno,
@@ -517,6 +518,8 @@ static int register_bound_param(INTERNAL_FUNCTION_PARAMETERS, pdo_stmt_t *stmt,
                                return 0;
                        }       
                }
+               /* since we're hashing this, we need the null byte too */
+               param.namelen = name_strlen + 1;
        } else if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lz|llz!", &param.paramno,
                        &param.parameter, &param.param_type, &param.max_value_len, &param.driver_params)) {
                return 0;