summaryrefslogtreecommitdiff
path: root/ext/standard/string.c
diff options
context:
space:
mode:
authorXinchen Hui <laruence@gmail.com>2014-02-25 13:04:00 +0800
committerXinchen Hui <laruence@gmail.com>2014-02-25 13:04:00 +0800
commitf482092cabb82b688a8421ce5a2254e2f6aed5cf (patch)
tree579678e2d4c9638d0dff81fc49160aa190f34540 /ext/standard/string.c
parent2ed1f008698027c03364988f839cdb709f3f9e56 (diff)
downloadphp-git-f482092cabb82b688a8421ce5a2254e2f6aed5cf.tar.gz
Fixed momory leak in heberv
Diffstat (limited to 'ext/standard/string.c')
-rw-r--r--ext/standard/string.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c
index 405168ce4e..b54b18a4f6 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -3979,11 +3979,12 @@ PHP_FUNCTION(str_ireplace)
static void php_hebrev(INTERNAL_FUNCTION_PARAMETERS, int convert_newlines)
{
char *str;
- char *heb_str, *tmp, *target, *broken_str;
+ char *heb_str, *tmp, *target;
int block_start, block_end, block_type, block_length, i;
long max_chars=0;
int begin, end, char_count, orig_begin;
int str_len;
+ zend_string *broken_str;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &str, &str_len, &max_chars) == FAILURE) {
return;
@@ -4075,9 +4076,9 @@ static void php_hebrev(INTERNAL_FUNCTION_PARAMETERS, int convert_newlines)
} while (block_end < str_len-1);
- broken_str = (char *) emalloc(str_len+1);
- begin=end=str_len-1;
- target = broken_str;
+ broken_str = STR_ALLOC(str_len, 0);
+ begin = end = str_len-1;
+ target = broken_str->val;
while (1) {
char_count=0;
@@ -4134,11 +4135,10 @@ static void php_hebrev(INTERNAL_FUNCTION_PARAMETERS, int convert_newlines)
efree(heb_str);
if (convert_newlines) {
- php_char_to_str(broken_str, str_len,'\n', "<br />\n", 7, return_value);
- efree(broken_str);
+ php_char_to_str(broken_str->val, broken_str->len,'\n', "<br />\n", 7, return_value);
+ STR_FREE(broken_str);
} else {
-//??? RETURN_STRINGL(broken_str, str_len, 0);
- RETURN_STRINGL(broken_str, str_len);
+ RETURN_STR(broken_str);
}
}
/* }}} */