cvs: php4(php_4_0_4) /main php_variables.c php_variables.h
| From: | Stanislav Malyshev | 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);