]> granicus.if.org Git - php/commitdiff
fixed a memory leak in ext/mbstring.
authorRui Hirokawa <hirokawa@php.net>
Fri, 4 May 2001 10:42:54 +0000 (10:42 +0000)
committerRui Hirokawa <hirokawa@php.net>
Fri, 4 May 2001 10:42:54 +0000 (10:42 +0000)
ext/mbstring/mbfilter.c
ext/mbstring/mbstring.c

index 2e8e7bb0bb955339eeb22a2af4bab4aba82f7d9d..d640bc01f5960aec1845e267e10b31372132e9bd 100644 (file)
@@ -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
index 2afc22df1ad515898da897998e6671819d4e6dc6..e6df77f73645b8af63ffee96c86b540d02160573 100644 (file)
@@ -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)
     */