lbarnaud Fri Apr 24 15:44:35 2009 UTC Modified files: /php-src/main php_variables.c Log: Fix memleak on empty GET var (tests/basic/011.phpt) http://cvs.php.net/viewvc.cgi/php-src/main/php_variables.c?r1=1.154&r2=1.155&diff_format=u Index: php-src/main/php_variables.c diff -u php-src/main/php_variables.c:1.154 php-src/main/php_variables.c:1.155 --- php-src/main/php_variables.c:1.154 Mon Mar 30 14:21:03 2009 +++ php-src/main/php_variables.c Fri Apr 24 15:44:35 2009 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_variables.c,v 1.154 2009/03/30 14:21:03 kalle Exp $ */ +/* $Id: php_variables.c,v 1.155 2009/04/24 15:44:35 lbarnaud Exp $ */ #include <stdio.h> #include "php.h" @@ -531,6 +531,7 @@ while (var) { int var_len; + /* unsigned int new_val_len; see below */ UChar *u_var, *u_val; int u_var_len, u_val_len; UErrorCode status = U_ZERO_ERROR; @@ -562,7 +563,6 @@ if (val) { /* have a value */ int val_len; - /* unsigned int new_val_len; see below */ val_len = php_url_decode(val, strlen(val)); zend_string_to_unicode_ex(input_conv, &u_val, &u_val_len, val, val_len, &status); @@ -572,38 +572,19 @@ efree(u_val); goto next_var; } - php_u_register_variable_safe(u_var, u_val, u_val_len, array_ptr TSRMLS_CC); - /* UTODO need to make input_filter Unicode aware */ - /* - if (sapi_module.input_filter(arg, var, &val, val_len, &new_val_len TSRMLS_CC)) { - php_register_variable_safe(var, val, new_val_len, array_ptr TSRMLS_CC); - } - */ - efree(u_var); - efree(u_val); } else { - if (val) { /* have a value */ - int val_len; - unsigned int new_val_len; - - val_len = php_url_decode(val, strlen(val)); - val = estrndup(val, val_len); - if (sapi_module.input_filter(arg, var, &val, val_len, &new_val_len TSRMLS_CC)) { - php_register_variable_safe(var, val, new_val_len, array_ptr TSRMLS_CC); - } - efree(val); - } else { - int val_len; - unsigned int new_val_len; - - val_len = 0; - val = estrndup("", val_len); - if (sapi_module.input_filter(arg, var, &val, val_len, &new_val_len TSRMLS_CC)) { - php_register_variable_safe(var, val, new_val_len, array_ptr TSRMLS_CC); - } - efree(val); - } + u_val_len = 0; + u_val = eustrndup(EMPTY_STR, 0); } + php_u_register_variable_safe(u_var, u_val, u_val_len, array_ptr TSRMLS_CC); + /* UTODO need to make input_filter Unicode aware */ + /* + if (sapi_module.input_filter(arg, var, &val, val_len, &new_val_len TSRMLS_CC)) { + php_register_variable_safe(var, val, new_val_len, array_ptr TSRMLS_CC); + } + */ + efree(u_var); + efree(u_val); next_var: var = php_strtok_r(NULL, separator, &strtok_buf); }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php