Edit report at https://bugs.php.net/bug.php?id=62129&edit=1

 ID:                 62129
 Updated by:         [email protected]
 Reported by:        truth at proposaltech dot com
 Summary:            rfc1867 crashes php even though turned off
 Status:             Open
 Type:               Bug
 Package:            Session related
 Operating System:   CentOS
 PHP Version:        5.4.3
 Block user comment: N
 Private report:     N

 New Comment:

yes, the codes seems suspicious,  maybe iliaa can look into this :)

diff --git a/ext/session/session.c b/ext/session/session.c
index 7a8199d..851e4ea 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -2384,13 +2384,14 @@ static int php_session_rfc1867_callback(unsigned int 
event, void *event_data, vo
        php_session_rfc1867_progress *progress;
        int retval = SUCCESS;
 
-       if (php_session_rfc1867_orig_callback) {
-               retval = php_session_rfc1867_orig_callback(event, event_data, 
extra TSRMLS_CC);
-       }
        if (!PS(rfc1867_enabled)) {
                return retval;
        }
 
+       if (php_session_rfc1867_orig_callback) {
+               retval = php_session_rfc1867_orig_callback(event, event_data, 
extra TSRMLS_CC);
+       }
+
        progress = PS(rfc1867_progress);
 
        switch(event) {


Previous Comments:
------------------------------------------------------------------------
[2012-05-23 18:16:01] truth at proposaltech dot com

Description:
------------
php_session_rfc1867_callback() tries to call 
php_session_rfc1867_orig_callback() even if the rfc1867 feature is not enabled. 
 Switching the order of the opening "if" blocks fixes the problem.  (The second 
"if" block immediately returns success if the feature isn't enabled and the 
first "if" block tries to call the callback.  This is all around line 2388 of 
session.c.)

I upgraded from 5.3.3 to 5.4.3 and apache was segfaulting.  I produced a core 
and the debugger showed infinite recursion in php_session_rfc1867_callback().  
There are probably deeper problems here, but at the least the feature shouldn't 
cause problems if it is turned off.

In any case, even if something about my configuration is less than ideal, seg 
faults are Bad Thing.

Test script:
---------------
Apparently, my code wasn't executed.  I tried using Xdebug, but it didn't 
report anything.  dump_bt didn't return anything in the debugger.

Expected result:
----------------
I expected my code to be executed normally.

Actual result:
--------------
apache seg faulted


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



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

Reply via email to