tony2001 Tue Dec 6 13:53:37 2005 EDT Modified files: (Branch: PHP_5_1) /php-src/ext/oci8 oci8_statement.c Log: use strlen() to get correct element length http://cvs.php.net/diff.php/php-src/ext/oci8/oci8_statement.c?r1=1.7.2.4&r2=1.7.2.5&ty=u Index: php-src/ext/oci8/oci8_statement.c diff -u php-src/ext/oci8/oci8_statement.c:1.7.2.4 php-src/ext/oci8/oci8_statement.c:1.7.2.5 --- php-src/ext/oci8/oci8_statement.c:1.7.2.4 Thu Dec 1 14:25:48 2005 +++ php-src/ext/oci8/oci8_statement.c Tue Dec 6 13:53:35 2005 @@ -25,7 +25,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: oci8_statement.c,v 1.7.2.4 2005/12/01 19:25:48 tony2001 Exp $ */ +/* $Id: oci8_statement.c,v 1.7.2.5 2005/12/06 18:53:35 tony2001 Exp $ */ #ifdef HAVE_CONFIG_H @@ -722,14 +722,14 @@ case SQLT_STR: case SQLT_LVC: for (i = 0; i < bind->array.current_length; i++) { + int curr_element_length = strlen(((text *)bind->array.elements)+i*bind->array.max_length); if ((i < bind->array.old_length) && (zend_hash_get_current_data(hash, (void **) &entry) != FAILURE)) { zval_dtor(*entry); - ZVAL_STRINGL(*entry, ((text *)bind->array.elements)+i*bind->array.max_length, bind->array.max_length, 1); - Z_STRVAL_PP(entry)[ bind->array.max_length ] = '\0'; + ZVAL_STRINGL(*entry, ((text *)bind->array.elements)+i*bind->array.max_length, curr_element_length, 1); zend_hash_move_forward(hash); } else { - add_next_index_stringl(bind->zval, ((text *)bind->array.elements)+i*bind->array.max_length, bind->array.max_length, 1); + add_next_index_stringl(bind->zval, ((text *)bind->array.elements)+i*bind->array.max_length, curr_element_length, 1); } } break; @@ -1200,7 +1200,7 @@ } bind = emalloc(sizeof(php_oci_bind)); - bind->array.elements = (text *)emalloc(max_table_length * sizeof(text) * (maxlength + 1)); + bind->array.elements = (text *)ecalloc(1, max_table_length * sizeof(text) * (maxlength + 1)); bind->array.current_length = zend_hash_num_elements(Z_ARRVAL_P(var)); bind->array.old_length = bind->array.current_length; bind->array.max_length = maxlength;
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php