summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/mbstring/mbstring.c15
-rw-r--r--ext/mbstring/php_mbregex.c10
-rw-r--r--ext/mbstring/tests/bug26639.phpt54
-rw-r--r--ext/mbstring/tests/mb_http_output.phpt4
-rw-r--r--ext/mbstring/tests/mb_strpos.phpt8
-rw-r--r--ext/mbstring/tests/mb_strpos_error1.phpt4
-rw-r--r--ext/mbstring/tests/mb_strpos_variation1.phpt2
-rw-r--r--ext/mbstring/tests/mb_strpos_variation2.phpt2
-rw-r--r--ext/mbstring/tests/mb_strpos_variation3.phpt14
-rw-r--r--ext/mbstring/tests/mb_strpos_variation4.phpt4
-rw-r--r--ext/mbstring/tests/mb_strrpos_error1.phpt4
-rw-r--r--ext/mbstring/tests/mb_strrpos_variation1.phpt4
-rw-r--r--ext/mbstring/tests/mb_strrpos_variation2.phpt2
-rw-r--r--ext/mbstring/tests/mb_strrpos_variation4.phpt4
14 files changed, 71 insertions, 60 deletions
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index 0b963f9f99..533e064a67 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -2047,6 +2047,7 @@ PHP_FUNCTION(mb_parse_str)
if (track_vars_array != NULL) {
/* Clear out the array */
+ ZVAL_DEREF(track_vars_array);
zval_dtor(track_vars_array);
array_init(track_vars_array);
}
@@ -3173,7 +3174,9 @@ PHP_FUNCTION(mb_strtoupper)
if (newstr) {
//???
- RETURN_STRINGL(newstr, ret_len);
+ RETVAL_STRINGL(newstr, ret_len);
+ efree(newstr);
+ return;
}
RETURN_FALSE;
}
@@ -3198,7 +3201,9 @@ PHP_FUNCTION(mb_strtolower)
if (newstr) {
//???
- RETURN_STRINGL(newstr, ret_len);
+ RETVAL_STRINGL(newstr, ret_len);
+ efree(newstr);
+ return;
}
RETURN_FALSE;
}
@@ -3378,6 +3383,7 @@ PHP_FUNCTION(mb_encode_mimeheader)
if (ret != NULL) {
//?????
RETVAL_STRINGL((char *)ret->val, ret->len); /* the string is already strdup()'ed */
+ efree(ret->val);
} else {
RETVAL_FALSE;
}
@@ -3403,6 +3409,7 @@ PHP_FUNCTION(mb_decode_mimeheader)
if (ret != NULL) {
//????
RETVAL_STRINGL((char *)ret->val, ret->len); /* the string is already strdup()'ed */
+ efree(ret->val);
} else {
RETVAL_FALSE;
}
@@ -4365,7 +4372,7 @@ PHP_FUNCTION(mb_get_info)
if (MBSTRG(current_http_output_encoding)) {
add_assoc_string(return_value, "http_output", (char *)MBSTRG(current_http_output_encoding)->name, 1);
}
- if ((name = (char *)zend_ini_string("mbstring.http_output_conv_mimetypes", sizeof("mbstring.http_output_conv_mimetypes"), 0)) != NULL) {
+ if ((name = (char *)zend_ini_string("mbstring.http_output_conv_mimetypes", sizeof("mbstring.http_output_conv_mimetypes") - 1, 0)) != NULL) {
add_assoc_string(return_value, "http_output_conv_mimetypes", name, 1);
}
add_assoc_long(return_value, "func_overload", MBSTRG(func_overload));
@@ -4440,7 +4447,7 @@ PHP_FUNCTION(mb_get_info)
RETVAL_STRING((char *)MBSTRG(current_http_output_encoding)->name);
}
} else if (!strcasecmp("http_output_conv_mimetypes", typ)) {
- if ((name = (char *)zend_ini_string("mbstring.http_output_conv_mimetypes", sizeof("mbstring.http_output_conv_mimetypes"), 0)) != NULL) {
+ if ((name = (char *)zend_ini_string("mbstring.http_output_conv_mimetypes", sizeof("mbstring.http_output_conv_mimetypes") - 1, 0)) != NULL) {
RETVAL_STRING(name);
}
} else if (!strcasecmp("func_overload", typ)) {
diff --git a/ext/mbstring/php_mbregex.c b/ext/mbstring/php_mbregex.c
index 8d84e41054..e9307df5d7 100644
--- a/ext/mbstring/php_mbregex.c
+++ b/ext/mbstring/php_mbregex.c
@@ -740,9 +740,11 @@ static void _php_mb_regex_ereg_exec(INTERNAL_FUNCTION_PARAMETERS, int icase)
match_len = 1;
str = string;
if (array != NULL) {
- match_len = regs->end[0] - regs->beg[0];
+ ZVAL_DEREF(array);
zval_dtor(array);
array_init(array);
+
+ match_len = regs->end[0] - regs->beg[0];
for (i = 0; i < regs->num_regs; i++) {
beg = regs->beg[i];
end = regs->end[i];
@@ -1011,9 +1013,11 @@ static void _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAMETERS, OnigOp
if (err <= -2) {
smart_str_free(&out_buf);
RETVAL_FALSE;
- } else {
- smart_str_appendc(&out_buf, '\0');
+ } else if (out_buf.s) {
+ smart_str_0(&out_buf);
RETVAL_STR(out_buf.s);
+ } else {
+ RETVAL_EMPTY_STRING();
}
}
/* }}} */
diff --git a/ext/mbstring/tests/bug26639.phpt b/ext/mbstring/tests/bug26639.phpt
index a87e912ba6..3f5b8e5acd 100644
--- a/ext/mbstring/tests/bug26639.phpt
+++ b/ext/mbstring/tests/bug26639.phpt
@@ -70,54 +70,54 @@ unset($a);
unset($b);
unset($c);
?>
---EXPECT--
-string(10) "あいうえお" refcount(2)
-string(10) "、「、、、ヲ、ィ、ェ" refcount(2)
-string(10) "、「、、、ヲ、ィ、ェ" refcount(1)
-string(10) "、「、、、ヲ、ィ、ェ" refcount(1)
-array(1) refcount(2){
+--EXPECTF--
+string(10) "あいうえお" refcount(%d)
+string(10) "、「、、、ヲ、ィ、ェ" refcount(%d)
+string(10) "、「、、、ヲ、ィ、ェ" refcount(%d)
+string(10) "、「、、、ヲ、ィ、ェ" refcount(%d)
+array(1) refcount(%d){
[0]=>
- string(10) "あいうえお" refcount(2)
+ string(10) "あいうえお" refcount(%d)
}
-array(1) refcount(2){
+array(1) refcount(%d){
[0]=>
- string(10) "、「、、、ヲ、ィ、ェ" refcount(1)
+ string(10) "、「、、、ヲ、ィ、ェ" refcount(%d)
}
-array(1) refcount(2){
+array(1) refcount(%d){
[0]=>
- &string(10) "あいうえお" refcount(2)
+ &string(10) "あいうえお" refcount(%d)
}
-array(1) refcount(2){
+array(1) refcount(%d){
[0]=>
- string(10) "、「、、、ヲ、ィ、ェ" refcount(1)
+ string(10) "、「、、、ヲ、ィ、ェ" refcount(%d)
}
-array(1) refcount(1){
+array(1) refcount(%d){
[0]=>
- string(10) "、「、、、ヲ、ィ、ェ" refcount(2)
+ string(10) "、「、、、ヲ、ィ、ェ" refcount(%d)
}
-array(1) refcount(1){
+array(1) refcount(%d){
[0]=>
- string(10) "、「、、、ヲ、ィ、ェ" refcount(2)
+ string(10) "、「、、、ヲ、ィ、ェ" refcount(%d)
}
-array(1) refcount(1){
+array(1) refcount(%d){
[0]=>
- string(10) "、「、、、ヲ、ィ、ェ" refcount(2)
+ string(10) "、「、、、ヲ、ィ、ェ" refcount(%d)
}
-array(1) refcount(1){
+array(1) refcount(%d){
[0]=>
- string(10) "、「、、、ヲ、ィ、ェ" refcount(2)
+ string(10) "、「、、、ヲ、ィ、ェ" refcount(%d)
}
-array(1) refcount(3){
+array(1) refcount(%d){
[0]=>
- array(1) refcount(1){
+ array(1) refcount(%d){
[0]=>
- string(10) "あいうえお" refcount(1)
+ string(10) "あいうえお" refcount(%d)
}
}
-array(1) refcount(2){
+array(1) refcount(%d){
[0]=>
- array(1) refcount(1){
+ array(1) refcount(%d){
[0]=>
- string(10) "、「、、、ヲ、ィ、ェ" refcount(1)
+ string(10) "、「、、、ヲ、ィ、ェ" refcount(%d)
}
}
diff --git a/ext/mbstring/tests/mb_http_output.phpt b/ext/mbstring/tests/mb_http_output.phpt
index 6f149bfc9f..a6cac3fb35 100644
--- a/ext/mbstring/tests/mb_http_output.phpt
+++ b/ext/mbstring/tests/mb_http_output.phpt
@@ -49,12 +49,12 @@ $enc = mb_http_output();
print "$enc\n";
$r = mb_http_output($t_ary);
-($r === FALSE) ? print "OK_BAD_ARY_SET\n" : print "NG_BAD_ARY_SET\n";
+($r === NULL) ? print "OK_BAD_ARY_SET\n" : print "NG_BAD_ARY_SET\n";
$enc = mb_http_output();
print "$enc\n";
$r = mb_http_output($t_obj);
-($r === FALSE) ? print "OK_BAD_OBJ_SET\n" : print "NG_BAD_OBJ_SET\n";
+($r === NULL) ? print "OK_BAD_OBJ_SET\n" : print "NG_BAD_OBJ_SET\n";
$enc = mb_http_output();
print "$enc\n";
diff --git a/ext/mbstring/tests/mb_strpos.phpt b/ext/mbstring/tests/mb_strpos.phpt
index 1d613e9c78..e1222ca6dd 100644
--- a/ext/mbstring/tests/mb_strpos.phpt
+++ b/ext/mbstring/tests/mb_strpos.phpt
@@ -103,13 +103,13 @@ $r = mb_strpos($euc_jp, b"\n");
echo "== INVALID PARAMETER TEST ==\n";
$r = mb_strpos($euc_jp,'','EUC-JP');
-($r === FALSE) ? print("OK_NULL\n") : print("NG_NULL\n");
+($r === NULL) ? print("OK_NULL\n") : print("NG_NULL\n");
$r = mb_strpos($euc_jp, $t_ary, 'EUC-JP');
-($r === FALSE) ? print("OK_ARRAY\n") : print("NG_ARRAY\n");
+($r === NULL) ? print("OK_ARRAY\n") : print("NG_ARRAY\n");
$r = mb_strpos($euc_jp, $t_obj, 'EUC-JP');
-($r === FALSE) ? print("OK_OBJECT\n") : print("NG_OBJECT\n");
+($r === NULL) ? print("OK_OBJECT\n") : print("NG_OBJECT\n");
$r = mb_strpos($euc_jp, $t_obj, 'BAD_ENCODING');
-($r === FALSE) ? print("OK_BAD_ENCODING\n") : print("NG_BAD_ENCODING\n");
+($r === NULL) ? print("OK_BAD_ENCODING\n") : print("NG_BAD_ENCODING\n");
?>
diff --git a/ext/mbstring/tests/mb_strpos_error1.phpt b/ext/mbstring/tests/mb_strpos_error1.phpt
index 8f5ba85423..ef0cbafeff 100644
--- a/ext/mbstring/tests/mb_strpos_error1.phpt
+++ b/ext/mbstring/tests/mb_strpos_error1.phpt
@@ -41,10 +41,10 @@ echo "Done";
-- Testing mb_strpos() function with more than expected no. of arguments --
Warning: mb_strpos() expects at most 4 parameters, 5 given in %s on line %d
-bool(false)
+NULL
-- Testing mb_strpos() function with less than expected no. of arguments --
Warning: mb_strpos() expects at least 2 parameters, 1 given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_strpos_variation1.phpt b/ext/mbstring/tests/mb_strpos_variation1.phpt
index d665f8f7ef..0684724b5c 100644
--- a/ext/mbstring/tests/mb_strpos_variation1.phpt
+++ b/ext/mbstring/tests/mb_strpos_variation1.phpt
@@ -178,5 +178,5 @@ bool(false)
-- Iteration 24 --
Warning: mb_strpos() expects parameter 1 to be string, resource given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_strpos_variation2.phpt b/ext/mbstring/tests/mb_strpos_variation2.phpt
index d6feb49231..486b2bb3e5 100644
--- a/ext/mbstring/tests/mb_strpos_variation2.phpt
+++ b/ext/mbstring/tests/mb_strpos_variation2.phpt
@@ -194,5 +194,5 @@ bool(false)
-- Iteration 24 --
Warning: mb_strpos() expects parameter 2 to be string, resource given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_strpos_variation3.phpt b/ext/mbstring/tests/mb_strpos_variation3.phpt
index 65572b5f04..ff69b8c6f8 100644
--- a/ext/mbstring/tests/mb_strpos_variation3.phpt
+++ b/ext/mbstring/tests/mb_strpos_variation3.phpt
@@ -162,32 +162,32 @@ int(8)
-- Iteration 16 --
Warning: mb_strpos() expects parameter 3 to be long, string given in %s on line %d
-bool(false)
+NULL
-- Iteration 17 --
Warning: mb_strpos() expects parameter 3 to be long, string given in %s on line %d
-bool(false)
+NULL
-- Iteration 18 --
Warning: mb_strpos() expects parameter 3 to be long, string given in %s on line %d
-bool(false)
+NULL
-- Iteration 19 --
Warning: mb_strpos() expects parameter 3 to be long, string given in %s on line %d
-bool(false)
+NULL
-- Iteration 20 --
Warning: mb_strpos() expects parameter 3 to be long, string given in %s on line %d
-bool(false)
+NULL
-- Iteration 21 --
Warning: mb_strpos() expects parameter 3 to be long, object given in %s on line %d
-bool(false)
+NULL
-- Iteration 22 --
int(8)
@@ -198,5 +198,5 @@ int(8)
-- Iteration 24 --
Warning: mb_strpos() expects parameter 3 to be long, resource given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_strpos_variation4.phpt b/ext/mbstring/tests/mb_strpos_variation4.phpt
index 0fca8bb1f2..4051646ae4 100644
--- a/ext/mbstring/tests/mb_strpos_variation4.phpt
+++ b/ext/mbstring/tests/mb_strpos_variation4.phpt
@@ -218,5 +218,5 @@ bool(false)
-- Iteration 24 --
Warning: mb_strpos() expects parameter 4 to be string, resource given in %s on line %d
-bool(false)
-Done \ No newline at end of file
+NULL
+Done
diff --git a/ext/mbstring/tests/mb_strrpos_error1.phpt b/ext/mbstring/tests/mb_strrpos_error1.phpt
index 15228fec81..892599acc2 100644
--- a/ext/mbstring/tests/mb_strrpos_error1.phpt
+++ b/ext/mbstring/tests/mb_strrpos_error1.phpt
@@ -41,10 +41,10 @@ echo "Done";
-- Testing mb_strrpos() function with more than expected no. of arguments --
Warning: mb_strrpos() expects at most 4 parameters, 5 given in %s on line %d
-bool(false)
+NULL
-- Testing mb_strrpos() function with less than expected no. of arguments --
Warning: mb_strrpos() expects at least 2 parameters, 1 given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_strrpos_variation1.phpt b/ext/mbstring/tests/mb_strrpos_variation1.phpt
index 2d2db9003c..8b1713f9f1 100644
--- a/ext/mbstring/tests/mb_strrpos_variation1.phpt
+++ b/ext/mbstring/tests/mb_strrpos_variation1.phpt
@@ -177,5 +177,5 @@ bool(false)
-- Iteration 24 --
Warning: mb_strrpos() expects parameter 1 to be string, resource given in %s on line %d
-bool(false)
-Done \ No newline at end of file
+NULL
+Done
diff --git a/ext/mbstring/tests/mb_strrpos_variation2.phpt b/ext/mbstring/tests/mb_strrpos_variation2.phpt
index 1566b5cb5f..c2855e0f81 100644
--- a/ext/mbstring/tests/mb_strrpos_variation2.phpt
+++ b/ext/mbstring/tests/mb_strrpos_variation2.phpt
@@ -179,5 +179,5 @@ bool(false)
-- Iteration 24 --
Warning: mb_strrpos() expects parameter 2 to be string, resource given in %s on line %d
-bool(false)
+NULL
Done
diff --git a/ext/mbstring/tests/mb_strrpos_variation4.phpt b/ext/mbstring/tests/mb_strrpos_variation4.phpt
index 198ce8fc70..9d9a5f2358 100644
--- a/ext/mbstring/tests/mb_strrpos_variation4.phpt
+++ b/ext/mbstring/tests/mb_strrpos_variation4.phpt
@@ -218,5 +218,5 @@ bool(false)
-- Iteration 24 --
Warning: mb_strrpos() expects parameter 4 to be string, resource given in %s on line %d
-bool(false)
-Done \ No newline at end of file
+NULL
+Done