iliaa Fri Jul 28 14:23:35 2006 UTC Modified files: (Branch: PHP_5_2) /php-src NEWS /php-src/ext/standard info.c info.h Log: ext/standard/info.c ext/standard/info.h http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.160&r2=1.2027.2.547.2.161&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.160 php-src/NEWS:1.2027.2.547.2.161 --- php-src/NEWS:1.2027.2.547.2.160 Fri Jul 28 12:23:18 2006 +++ php-src/NEWS Fri Jul 28 14:23:35 2006 @@ -15,6 +15,7 @@ . Fixed bug #37564 (AES privacy encryption not possible due to net-snmp 5.2 compatibility issue). (Patch: scott dot moynes+php at gmail dot com) +- Fixed phpinfo() cutoff of variables at \0. (Ilia) - Fixed a bug in the filter extension that prevented magic_quotes_gpc from being applied when RAW filter is used. (Ilia) - Fixed bug #38236 (Binary data gets corrupted on multipart/formdata POST). http://cvs.php.net/viewvc.cgi/php-src/ext/standard/info.c?r1=1.249.2.10.2.2&r2=1.249.2.10.2.3&diff_format=u Index: php-src/ext/standard/info.c diff -u php-src/ext/standard/info.c:1.249.2.10.2.2 php-src/ext/standard/info.c:1.249.2.10.2.3 --- php-src/ext/standard/info.c:1.249.2.10.2.2 Sun Jun 11 20:47:34 2006 +++ php-src/ext/standard/info.c Fri Jul 28 14:23:35 2006 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: info.c,v 1.249.2.10.2.2 2006/06/11 20:47:34 iliaa Exp $ */ +/* $Id: info.c,v 1.249.2.10.2.3 2006/07/28 14:23:35 iliaa Exp $ */ #include "php.h" #include "php_ini.h" @@ -114,7 +114,6 @@ char *string_key; uint string_len; ulong num_key; - char *elem_esc = NULL; zend_is_auto_global(name, name_length TSRMLS_CC); @@ -134,11 +133,9 @@ switch (zend_hash_get_current_key_ex(Z_ARRVAL_PP(data), &string_key, &string_len, &num_key, 0, NULL)) { case HASH_KEY_IS_STRING: if (!sapi_module.phpinfo_as_text) { - elem_esc = php_info_html_esc(string_key TSRMLS_CC); - PUTS(elem_esc); - efree(elem_esc); + php_info_html_esc_write(string_key, string_len TSRMLS_CC); } else { - PUTS(string_key); + PHPWRITE(string_key, string_len); } break; case HASH_KEY_IS_LONG: @@ -167,12 +164,10 @@ if (Z_STRLEN(tmp2) == 0) { PUTS("<i>no value</i>"); } else { - elem_esc = php_info_html_esc(Z_STRVAL(tmp2) TSRMLS_CC); - PUTS(elem_esc); - efree(elem_esc); + php_info_html_esc_write(Z_STRVAL(tmp2), Z_STRLEN(tmp2) TSRMLS_CC); } } else { - PUTS(Z_STRVAL(tmp2)); + PHPWRITE(Z_STRVAL(tmp2), Z_STRLEN(tmp2)); } zval_dtor(&tmp2); } else { @@ -180,12 +175,10 @@ if (Z_STRLEN_PP(tmp) == 0) { PUTS("<i>no value</i>"); } else { - elem_esc = php_info_html_esc(Z_STRVAL_PP(tmp) TSRMLS_CC); - PUTS(elem_esc); - efree(elem_esc); + php_info_html_esc_write(Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp) TSRMLS_CC); } } else { - PUTS(Z_STRVAL_PP(tmp)); + PHPWRITE(Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp)); } } if (!sapi_module.phpinfo_as_text) { @@ -209,6 +202,17 @@ } /* }}} */ +/* {{{ php_info_html_esc_write + */ +PHPAPI void php_info_html_esc_write(char *string, int str_len TSRMLS_DC) +{ + int new_len; + char *ret = php_escape_html_entities(string, str_len, &new_len, 0, ENT_QUOTES, NULL TSRMLS_CC); + + PHPWRITE(ret, new_len); + efree(ret); +} +/* }}} */ /* {{{ php_info_html_esc */ http://cvs.php.net/viewvc.cgi/php-src/ext/standard/info.h?r1=1.38.2.1&r2=1.38.2.1.2.1&diff_format=u Index: php-src/ext/standard/info.h diff -u php-src/ext/standard/info.h:1.38.2.1 php-src/ext/standard/info.h:1.38.2.1.2.1 --- php-src/ext/standard/info.h:1.38.2.1 Sun Jan 1 12:50:15 2006 +++ php-src/ext/standard/info.h Fri Jul 28 14:23:35 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: info.h,v 1.38.2.1 2006/01/01 12:50:15 sniper Exp $ */ +/* $Id: info.h,v 1.38.2.1.2.1 2006/07/28 14:23:35 iliaa Exp $ */ #ifndef INFO_H #define INFO_H @@ -67,6 +67,7 @@ PHP_FUNCTION(php_uname); PHP_FUNCTION(php_ini_scanned_files); PHPAPI char *php_info_html_esc(char *string TSRMLS_DC); +PHPAPI void php_info_html_esc_write(char *string, int str_len TSRMLS_DC); PHPAPI void php_print_info_htmlhead(TSRMLS_D); PHPAPI void php_print_info(int flag TSRMLS_DC); PHPAPI void php_print_style(void);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php