felipe                                   Thu, 01 Jul 2010 19:51:36 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=300918

Log:
- Fixed a possible memory corruption in substr(), chunk_split(), strtok(), 
addcslashes(), str_repeat()

Changed paths:
    U   php/php-src/branches/PHP_5_2/ext/standard/string.c

Modified: php/php-src/branches/PHP_5_2/ext/standard/string.c
===================================================================
--- php/php-src/branches/PHP_5_2/ext/standard/string.c  2010-07-01 19:11:01 UTC 
(rev 300917)
+++ php/php-src/branches/PHP_5_2/ext/standard/string.c  2010-07-01 19:51:36 UTC 
(rev 300918)
@@ -1230,6 +1230,9 @@
                case 2:
                        str = args[0];
                        tok = args[1];
+                       if (PZVAL_IS_REF(*str)) {
+                               SEPARATE_ZVAL(str);
+                       }
                        convert_to_string_ex(str);

                        zval_add_ref(str);
@@ -2208,6 +2211,9 @@
                WRONG_PARAM_COUNT;
        }

+       if (PZVAL_IS_REF(*p_str)) {
+               SEPARATE_ZVAL(p_str);
+       }
        convert_to_string_ex(p_str);

        if (argc > 1) {
@@ -2263,6 +2269,9 @@
                WRONG_PARAM_COUNT;
        }

+       if (PZVAL_IS_REF(*str)) {
+               SEPARATE_ZVAL(str);
+       }
        convert_to_string_ex(str);
        convert_to_long_ex(from);

@@ -3059,6 +3068,9 @@
        if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &str, &what) == 
FAILURE) {
                WRONG_PARAM_COUNT;
        }
+       if (PZVAL_IS_REF(*str)) {
+               SEPARATE_ZVAL(str);
+       }
        convert_to_string_ex(str);
        convert_to_string_ex(what);

@@ -4632,6 +4644,9 @@
        }

        /* Make sure we're dealing with proper types */
+       if (PZVAL_IS_REF(*input_str)) {
+               SEPARATE_ZVAL(input_str);
+       }
        convert_to_string_ex(input_str);
        convert_to_long_ex(mult);


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

Reply via email to