diff options
-rw-r--r-- | ext/mbstring/mb_gpc.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/mbstring/mb_gpc.c b/ext/mbstring/mb_gpc.c index 61c635b280..a58c63ac56 100644 --- a/ext/mbstring/mb_gpc.c +++ b/ext/mbstring/mb_gpc.c @@ -343,10 +343,14 @@ int _php_mb_encoding_handler_ex(int data_type, zval *arg, char *res, char *separ val_len = len_list[n]; } n++; + /* we need val to be emalloc()ed */ + val = estrndup(val, val_len); if (sapi_module.input_filter(data_type, var, &val, val_len, &new_val_len TSRMLS_CC)) { /* add variable to symbol table */ php_register_variable_safe(var, val, new_val_len, array_ptr TSRMLS_CC); } + efree(val); + if (convd != NULL){ mbfl_string_clear(&resvar); mbfl_string_clear(&resval); |