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