tony2001 Tue Dec 6 13:54:34 2005 EDT
Modified files:
/php-src/ext/oci8 oci8_statement.c
Log:
MF51: use strlen() to get correct element length
http://cvs.php.net/diff.php/php-src/ext/oci8/oci8_statement.c?r1=1.9&r2=1.10&ty=u
Index: php-src/ext/oci8/oci8_statement.c
diff -u php-src/ext/oci8/oci8_statement.c:1.9
php-src/ext/oci8/oci8_statement.c:1.10
--- php-src/ext/oci8/oci8_statement.c:1.9 Thu Dec 1 14:26:31 2005
+++ php-src/ext/oci8/oci8_statement.c Tue Dec 6 13:54:33 2005
@@ -25,7 +25,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: oci8_statement.c,v 1.9 2005/12/01 19:26:31 tony2001 Exp $ */
+/* $Id: oci8_statement.c,v 1.10 2005/12/06 18:54:33 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