cvs: php4(php_4_0_4) /main php_variables.c php_variables.h

From: Date: Tue, 12 Dec 2000 11:13:27 +0000
Subject: cvs: php4(php_4_0_4) /main php_variables.c php_variables.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-3091@lists.php.net to get a copy of this message
stas Tue Dec 12 03:13:27 2000 EDT Branch: php_4_0_4 Modified files: /php4/main php_variables.c php_variables.h Log: MFH Index: php4/main/php_variables.c diff -u php4/main/php_variables.c:1.19 php4/main/php_variables.c:1.19.2.1 --- php4/main/php_variables.c:1.19 Tue Nov 7 10:25:29 2000 +++ php4/main/php_variables.c Tue Dec 12 03:13:26 2000 @@ -29,12 +29,17 @@ #include "zend_globals.h" -PHPAPI void php_register_variable(char *var, char *strval, zval *track_vars_array ELS_DC PLS_DC) +PHPAPI void php_register_variable(char *var, char *strval, zval *track_vars_array ELS_DC PLS_DC) { + php_register_variable_safe(var, strval, strlen(strval), track_vars_array ELS_CC PLS_CC); +} + +/* binary-safe version */ +PHPAPI void php_register_variable_safe(char *var, char *strval, int str_len, zval *track_vars_array ELS_DC PLS_DC) { zval new_entry; /* Prepare value */ - new_entry.value.str.len = strlen(strval); + new_entry.value.str.len = str_len; if (PG(magic_quotes_gpc)) { new_entry.value.str.val = php_addslashes(strval, new_entry.value.str.len, &new_entry.value.str.len, 0); } else { @@ -198,11 +203,12 @@ while (var) { val = strchr(var, '='); if (val) { /* have a value */ + int val_len; + *val++ = '\0'; - /* FIXME: XXX: not binary safe, discards returned length */ php_url_decode(var, strlen(var)); - php_url_decode(val, strlen(val)); - php_register_variable(var, val, array_ptr ELS_CC PLS_CC); + val_len = php_url_decode(val, strlen(val)); + php_register_variable_safe(var, val, val_len, array_ptr ELS_CC PLS_CC); } var = php_strtok_r(NULL, "&", &strtok_buf); } @@ -282,11 +288,12 @@ while (var) { val = strchr(var, '='); if (val) { /* have a value */ + int val_len; + *val++ = '\0'; - /* FIXME: XXX: not binary safe, discards returned length */ php_url_decode(var, strlen(var)); - php_url_decode(val, strlen(val)); - php_register_variable(var, val, array_ptr ELS_CC PLS_CC); + val_len = php_url_decode(val, strlen(val)); + php_register_variable_safe(var, val, val_len, array_ptr ELS_CC PLS_CC); } if (arg == PARSE_COOKIE) { var = php_strtok_r(NULL, ";", &strtok_buf); Index: php4/main/php_variables.h diff -u php4/main/php_variables.h:1.8 php4/main/php_variables.h:1.8.2.1 --- php4/main/php_variables.h:1.8 Tue Nov 7 10:25:29 2000 +++ php4/main/php_variables.h Tue Dec 12 03:13:26 2000 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_variables.h,v 1.8 2000/11/07 18:25:29 zeev Exp $ */ +/* $Id: php_variables.h,v 1.8.2.1 2000/12/12 11:13:26 stas Exp $ */ #ifndef PHP_VARIABLES_H #define PHP_VARIABLES_H @@ -33,6 +33,8 @@ void php_treat_data(int arg, char *str, zval* destArray ELS_DC PLS_DC SLS_DC); PHPAPI void php_import_environment_variables(zval *array_ptr ELS_DC PLS_DC); PHPAPI void php_register_variable(char *var, char *val, pval *track_vars_array ELS_DC PLS_DC); +/* binary-safe version */ +PHPAPI void php_register_variable_safe(char *var, char *val, int val_len, pval *track_vars_array ELS_DC PLS_DC); PHPAPI void php_register_variable_ex(char *var, zval *val, pval *track_vars_array ELS_DC PLS_DC);

« previous php.cvs (#3091) next »