cvs: /php4/ext/standard info.c
| From: | Zeev Suraski | Date: | Sun, 09 Jan 2000 18:32:43 +0000 |
| Subject: | cvs: /php4/ext/standard info.c | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-8993@lists.php.net to get a copy of this message | ||
zeev Sun Jan 9 10:32:43 2000 EDT
Modified files:
/php4/ext/standard info.c
Log:
@- Fixed a possible crash in phpinfo() (Zeev)
phpinfo() now ensures that HTTP_*_VARS[] are actually arrays before it tries
to access them...
Index: php4/ext/standard/info.c
diff -u php4/ext/standard/info.c:1.56 php4/ext/standard/info.c:1.57
--- php4/ext/standard/info.c:1.56 Fri Dec 31 17:31:52 1999
+++ php4/ext/standard/info.c Sun Jan 9 10:32:13 2000
@@ -191,7 +191,8 @@
if (zend_hash_find(&EG(symbol_table), "PHP_AUTH_PW",
sizeof("PHP_AUTH_PW"), (void **) &data) != FAILURE) {
php_info_print_table_row(2, "PHP_AUTH_PW", (*data)->value.str.val);
}
- if (zend_hash_find(&EG(symbol_table), "HTTP_GET_VARS",
sizeof("HTTP_GET_VARS"), (void **) &data) != FAILURE) {
+ if (zend_hash_find(&EG(symbol_table), "HTTP_GET_VARS",
sizeof("HTTP_GET_VARS"), (void **) &data)!=FAILURE
+ && ((*data)->type==IS_ARRAY)) {
zend_hash_internal_pointer_reset((*data)->value.ht);
while (zend_hash_get_current_data((*data)->value.ht, (void **) &tmp) == SUCCESS) {
zval tmp2, *value_ptr;
@@ -229,7 +230,8 @@
}
}
}
- if (zend_hash_find(&EG(symbol_table), "HTTP_POST_VARS",
sizeof("HTTP_POST_VARS"), (void **) &data) != FAILURE) {
+ if (zend_hash_find(&EG(symbol_table), "HTTP_POST_VARS",
sizeof("HTTP_POST_VARS"), (void **) &data)!=FAILURE
+ && ((*data)->type==IS_ARRAY)) {
zend_hash_internal_pointer_reset((*data)->value.ht);
while (zend_hash_get_current_data((*data)->value.ht, (void **) &tmp) == SUCCESS) {
convert_to_string(*tmp);
@@ -249,7 +251,8 @@
zend_hash_move_forward((*data)->value.ht);
}
}
- if (zend_hash_find(&EG(symbol_table), "HTTP_COOKIE_VARS",
sizeof("HTTP_COOKIE_VARS"), (void **) &data) != FAILURE) {
+ if (zend_hash_find(&EG(symbol_table), "HTTP_COOKIE_VARS",
sizeof("HTTP_COOKIE_VARS"), (void **) &data)!=FAILURE
+ && ((*data)->type==IS_ARRAY)) {
zend_hash_internal_pointer_reset((*data)->value.ht);
while (zend_hash_get_current_data((*data)->value.ht, (void **) &tmp) == SUCCESS) {
convert_to_string(*tmp);