andrei          Fri Nov 17 16:44:23 2006 UTC

  Modified files:              
    /php-src/ext/standard       string.c 
  Log:
  Fix memory leaks and segfault.
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/string.c?r1=1.611&r2=1.612&diff_format=u
Index: php-src/ext/standard/string.c
diff -u php-src/ext/standard/string.c:1.611 php-src/ext/standard/string.c:1.612
--- php-src/ext/standard/string.c:1.611 Thu Nov 16 20:33:44 2006
+++ php-src/ext/standard/string.c       Fri Nov 17 16:44:23 2006
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: string.c,v 1.611 2006/11/16 20:33:44 derick Exp $ */
+/* $Id: string.c,v 1.612 2006/11/17 16:44:23 andrei Exp $ */
 
 /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */
 
@@ -3905,7 +3905,7 @@
                UChar *key_string;
 
                tmp_hash = emalloc(sizeof(HashTable));
-               zend_hash_init(tmp_hash, 0, ZVAL_PTR_DTOR, NULL, 0);
+               zend_hash_init(tmp_hash, 0, NULL, ZVAL_PTR_DTOR, 0);
 
                /* Loop over the two strings and prepare the hash entries */
                do
@@ -3922,7 +3922,8 @@
                                }
 
                                MAKE_STD_ZVAL(entry);
-                               ZVAL_UNICODEL(entry, str_to + prev_to_offset, 
to_cp_offset - prev_to_offset, 0);
+                               ZVAL_UNICODEL(entry, str_to + prev_to_offset, 
to_cp_offset - prev_to_offset, 1);
+                               Z_USTRVAL_P(entry)[to_cp_offset - 
prev_to_offset] = 0;
 
                                key_string = eumalloc(from_cp_offset - 
prev_from_offset + 1);
                                memcpy(key_string, str_from + prev_from_offset, 
UBYTES(from_cp_offset - prev_from_offset));

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to