diff options
author | Marcus Boerger <helly@php.net> | 2007-03-27 21:29:15 +0000 |
---|---|---|
committer | Marcus Boerger <helly@php.net> | 2007-03-27 21:29:15 +0000 |
commit | 36f0d79848f40530d68deafde6c0e986b0dbbd6a (patch) | |
tree | 6dd189ef48cfea8e73a286434a32be529db7d7c7 | |
parent | 9b63c11d2163068d6ea536e2c4ef6efd6f9ea956 (diff) | |
download | php-git-36f0d79848f40530d68deafde6c0e986b0dbbd6a.tar.gz |
- MFH Compatibility with suhosin
-rw-r--r-- | ext/phar/phar.c | 6 | ||||
-rwxr-xr-x | ext/phar/phar_internal.h | 1 |
2 files changed, 6 insertions, 1 deletions
diff --git a/ext/phar/phar.c b/ext/phar/phar.c index 660650a1af..5d05f0f99f 100644 --- a/ext/phar/phar.c +++ b/ext/phar/phar.c @@ -153,6 +153,9 @@ static void destroy_phar_data(void *pDest) /* {{{ */ phar_archive_data *phar_data = *(phar_archive_data **) pDest; TSRMLS_FETCH(); + if (PHAR_GLOBALS->request_ends) { + return destroy_phar_data_only(pDest); + } zend_hash_apply_with_argument(&(PHAR_GLOBALS->phar_alias_map), phar_unalias_apply, phar_data TSRMLS_CC); if (--phar_data->refcount < 0) { phar_destroy_phar_data(phar_data TSRMLS_CC); @@ -3126,6 +3129,7 @@ PHP_MSHUTDOWN_FUNCTION(phar) /* {{{ */ PHP_RINIT_FUNCTION(phar) /* {{{ */ { PHAR_GLOBALS->request_done = 0; + PHAR_GLOBALS->request_ends = 0; zend_hash_init(&(PHAR_GLOBALS->phar_fname_map), sizeof(phar_archive_data*), zend_get_hash_value, destroy_phar_data, 0); zend_hash_init(&(PHAR_GLOBALS->phar_alias_map), sizeof(phar_archive_data*), zend_get_hash_value, NULL, 0); return SUCCESS; @@ -3134,8 +3138,8 @@ PHP_RINIT_FUNCTION(phar) /* {{{ */ PHP_RSHUTDOWN_FUNCTION(phar) /* {{{ */ { + PHAR_GLOBALS->request_ends = 1; zend_hash_destroy(&(PHAR_GLOBALS->phar_alias_map)); - PHAR_GLOBALS->phar_fname_map. pDestructor = destroy_phar_data_only; zend_hash_destroy(&(PHAR_GLOBALS->phar_fname_map)); PHAR_GLOBALS->request_done = 1; return SUCCESS; diff --git a/ext/phar/phar_internal.h b/ext/phar/phar_internal.h index 13ab080437..908b34f7f9 100755 --- a/ext/phar/phar_internal.h +++ b/ext/phar/phar_internal.h @@ -103,6 +103,7 @@ ZEND_BEGIN_MODULE_GLOBALS(phar) zend_bool readonly_orig; zend_bool require_hash_orig; int request_done; + int request_ends; ZEND_END_MODULE_GLOBALS(phar) ZEND_EXTERN_MODULE_GLOBALS(phar) |