summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRui Hirokawa <hirokawa@php.net>2001-05-04 10:42:54 +0000
committerRui Hirokawa <hirokawa@php.net>2001-05-04 10:42:54 +0000
commitc0624c769b5d771c52f8eec3b924b9fdc4cd65f7 (patch)
tree4e18f3fb21ca13374f9128d772ffbdedc3385060
parent13e4699ae302c5aeed20ae5feba7bdd5b2941092 (diff)
downloadphp-git-c0624c769b5d771c52f8eec3b924b9fdc4cd65f7.tar.gz
fixed a memory leak in ext/mbstring.
-rw-r--r--ext/mbstring/mbfilter.c4
-rw-r--r--ext/mbstring/mbstring.c7
2 files changed, 10 insertions, 1 deletions
diff --git a/ext/mbstring/mbfilter.c b/ext/mbstring/mbfilter.c
index 2e8e7bb0bb..d640bc01f5 100644
--- a/ext/mbstring/mbfilter.c
+++ b/ext/mbstring/mbfilter.c
@@ -2279,12 +2279,16 @@ mbfl_filt_conv_common_ctor(mbfl_convert_filter *filter)
static int
mbfl_filt_conv_common_flush(mbfl_convert_filter *filter)
{
+ filter->status = 0;
+ filter->cache = 0;
return 0;
}
static void
mbfl_filt_conv_common_dtor(mbfl_convert_filter *filter)
{
+ filter->status = 0;
+ filter->cache = 0;
}
static int
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index 2afc22df1a..e6df77f736 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -51,6 +51,7 @@
#include "ext/standard/php_mail.h"
#include "ext/standard/url.h"
#include "ext/standard/php_output.h"
+#include "ext/standard/info.h"
#include "php_variables.h"
#include "php_globals.h"
@@ -763,8 +764,10 @@ PHP_FUNCTION(mb_preferred_mime_name)
}
/* }}} */
+#if defined(MBSTR_ENC_TRANS)
+static void
+php_mbstr_encoding_handler(zval *arg, char *res, char *separator) {
-static php_mbstr_encoding_handler(zval *arg, char *res, char *separator) {
char *var, *val;
char *strtok_buf = NULL, **val_list;
zval *array_ptr = (zval *) arg;
@@ -875,6 +878,7 @@ static php_mbstr_encoding_handler(zval *arg, char *res, char *separator) {
}
if (ret != NULL) {
php_register_variable_safe(val_list[n], ret->val, ret->len, array_ptr ELS_CC PLS_CC);
+ efree(ret->val);
} else {
php_register_variable_safe(val_list[n], val_list[n+1], len_list[n+1], array_ptr ELS_CC PLS_CC);
}
@@ -1023,6 +1027,7 @@ void mbstr_treat_data(int arg, char *str, zval* destArray ELS_DC PLS_DC SLS_DC)
efree(res);
}
}
+#endif
/* {{{ proto array mb_gpc_handler(string query, int type)
*/