iliaa Tue Oct 4 20:50:15 2005 EDT
Modified files: (Branch: PHP_4_4)
/php-src/sapi/apache2handler sapi_apache2.c
/php-src NEWS
Log:
MFH: Fixed possible INI setting leak via virtual() in Apache 2 sapi.
http://cvs.php.net/diff.php/php-src/sapi/apache2handler/sapi_apache2.c?r1=1.1.2.40.2.3&r2=1.1.2.40.2.4&ty=u
Index: php-src/sapi/apache2handler/sapi_apache2.c
diff -u php-src/sapi/apache2handler/sapi_apache2.c:1.1.2.40.2.3
php-src/sapi/apache2handler/sapi_apache2.c:1.1.2.40.2.4
--- php-src/sapi/apache2handler/sapi_apache2.c:1.1.2.40.2.3 Fri Sep 2
09:52:55 2005
+++ php-src/sapi/apache2handler/sapi_apache2.c Tue Oct 4 20:50:11 2005
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: sapi_apache2.c,v 1.1.2.40.2.3 2005/09/02 13:52:55 sniper Exp $ */
+/* $Id: sapi_apache2.c,v 1.1.2.40.2.4 2005/10/05 00:50:11 iliaa Exp $ */
#include <fcntl.h>
@@ -453,6 +453,11 @@
request_rec *parent_req = NULL;
TSRMLS_FETCH();
+#define PHPAP_INI_OFF \
+ if (strcmp(r->protocol, "INCLUDED")) { \
+ zend_try { zend_ini_deactivate(TSRMLS_C); } zend_end_try(); \
+ } \
+
conf = ap_get_module_config(r->per_dir_config, &php4_module);
/* apply_config() needs r in some cases, so allocate server_context
early */
@@ -474,9 +479,7 @@
if (strcmp(r->handler, PHP_MAGIC_TYPE) && strcmp(r->handler,
PHP_SOURCE_MAGIC_TYPE) && strcmp(r->handler, PHP_SCRIPT)) {
/* Check for xbithack in this case. */
if (!AP2(xbithack) || strcmp(r->handler, "text/html") ||
!(r->finfo.protection & APR_UEXECUTE)) {
- zend_try {
- zend_ini_deactivate(TSRMLS_C);
- } zend_end_try();
+ PHPAP_INI_OFF;
return DECLINED;
}
}
@@ -485,32 +488,24 @@
* the configuration; default behaviour is to accept. */
if (r->used_path_info == AP_REQ_REJECT_PATH_INFO
&& r->path_info && r->path_info[0]) {
- zend_try {
- zend_ini_deactivate(TSRMLS_C);
- } zend_end_try();
+ PHPAP_INI_OFF;
return HTTP_NOT_FOUND;
}
/* handle situations where user turns the engine off */
if (!AP2(engine)) {
- zend_try {
- zend_ini_deactivate(TSRMLS_C);
- } zend_end_try();
+ PHPAP_INI_OFF;
return DECLINED;
}
if (r->finfo.filetype == 0) {
php_apache_sapi_log_message_ex("script '%s' not found or unable
to stat", r);
- zend_try {
- zend_ini_deactivate(TSRMLS_C);
- } zend_end_try();
+ PHPAP_INI_OFF;
return HTTP_NOT_FOUND;
}
if (r->finfo.filetype == APR_DIR) {
php_apache_sapi_log_message_ex("attempt to invoke directory
'%s' as script", r);
- zend_try {
- zend_ini_deactivate(TSRMLS_C);
- } zend_end_try();
+ PHPAP_INI_OFF;
return HTTP_FORBIDDEN;
}
http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1247.2.920.2.45&r2=1.1247.2.920.2.46&ty=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.1247.2.920.2.45 php-src/NEWS:1.1247.2.920.2.46
--- php-src/NEWS:1.1247.2.920.2.45 Tue Oct 4 07:19:55 2005
+++ php-src/NEWS Tue Oct 4 20:50:13 2005
@@ -1,6 +1,7 @@
PHP 4 NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2005, Version 4.4.1
+- Fixed possible INI setting leak via virtual() in Apache 2 sapi. (Ilia)
- Fixed possible crash and/or memory corruption in import_request_variables().
(Ilia)
- Fixed potential GLOBALS overwrite via import_request_variables(). (Ilia)
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php