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

Reply via email to