]> granicus.if.org Git - php/commitdiff
Fixed segfault in ext/standard/tests/strings/add-and-stripslashes.phpt
authorXinchen Hui <laruence@gmail.com>
Fri, 21 Feb 2014 08:39:59 +0000 (16:39 +0800)
committerXinchen Hui <laruence@gmail.com>
Fri, 21 Feb 2014 08:39:59 +0000 (16:39 +0800)
ext/standard/string.c

index 6a96b3cecda05d7b1a56537f23b25d12a20fb64c..8aa0d5970cd7d2328182ee0d29d3b2e00a69fddc 100644 (file)
@@ -3318,8 +3318,8 @@ PHP_FUNCTION(addcslashes)
    Escapes single quote, double quotes and backslash characters in a string with backslashes */
 PHP_FUNCTION(addslashes)
 {
-       char *str;
-       int  str_len;
+       char *str, *new_str;
+       int  str_len, new_len;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &str, &str_len) == FAILURE) {
                return;
@@ -3333,10 +3333,9 @@ PHP_FUNCTION(addslashes)
 //???                               str_len,
 //???                               &Z_STRLEN_P(return_value), 0
 //???                               TSRMLS_CC), 0);
-       RETURN_STRING(php_addslashes(str,
-                                    str_len,
-                                    &Z_STRLEN_P(return_value), 0
-                                    TSRMLS_CC));
+       new_str = php_addslashes(str, str_len, &new_len, 0 TSRMLS_CC);
+       RETVAL_STRINGL(new_str, new_len);
+       efree(new_str);
 }
 /* }}} */