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

Reply via email to