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