ID:               30397
 User updated by:  kameshj at fastmail dot fm
 Reported By:      kameshj at fastmail dot fm
 Status:           Open
 Bug Type:         Zend Engine 2 problem
 Operating System: Any Operating System
 PHP Version:      Irrelevant
 New Comment:

I have drilled this down and found this to be a root cause and did this
change and found to be working for the past one week so in my local
setup so went ahead and checked in this change.
Why should I revert?
How long I can wait for someone to respond to my question?
If you have any problem with this patch technically please let me know
I will revert it.


Previous Comments:
------------------------------------------------------------------------

[2004-10-17 17:03:41] [EMAIL PROTECTED]

As far as I know nobody replied to your question about this change, so
please revert it.

------------------------------------------------------------------------

[2004-10-16 12:40:32] [EMAIL PROTECTED]

kameshj at fastmail dot fm:
If the bug has been fixed, than the bug report should be closed
probably?

------------------------------------------------------------------------

[2004-10-16 12:37:25] kameshj at fastmail dot fm

Commited both in 5_0 branch and 5_1 HEAD

------------------------------------------------------------------------

[2004-10-16 12:35:50] kameshj at fastmail dot fm

Fixed from hyanantha's account.

------------------------------------------------------------------------

[2004-10-11 16:49:29] kameshj at fastmail dot fm

Description:
------------
Startup errors causes the segmentation fault if display_startup_errors
is enabled.

Reproduce code:
---------------
display_startup_errors=On
extension=kamesh.so(Any nonexistent module)
start apache
Segmentation fault will happen inside php_printf.

Expected result:
----------------
It should log in a error log that non existent module. But should not
seg fault.

Actual result:
--------------
I could see php_output_activate(TSRMLS_C) getting called from
php_module_startup immedeately after php_output_startup.

Why is this needed? As each SAPI modules call
php_output_activate(TSRMLS_C) explicitly as a part of request startup.

Why am I concerned about this?

Ans: php_output_activate(TSRMLS_C) sets
OG(php_body_write) = php_ub_body_write;
which causes calls to php_printf to use php_ub_body_write which
depends
on SG(request_info) which is null while php_printf is invoked as part
of
apache startup error(Like Invalid extension/ Non existent extension)
logging.

This causes segmentation fault.

This change seems to have been introduced in version 1.371 of
main/main.c by Zeev(3 years and 3 months ago).
The comment says,
Fix a major thread safety bug in the output mechanism
@- Fixed a major memory corruption bug in the thread safe version
(Zeev) 


Can I remove a call to php_output_activate(TSRMLS_C) from
php_module_startup?

PS:What is the use of display_startup_errors? What does display mean
with respect to startup as it might not have any associated request
context?



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=30397&edit=1

Reply via email to