From:             jeff dot orrok at reedbusiness dot com
Operating system: windows xp sp2
PHP version:      5.2.4
PHP Bug Type:     Reproducible crash
Bug description:  stack overflow in php5ts.dll

Description:
------------
Invoking a non-existent method on a SOAP service crashes apache.  Although
PEAR's SOAP module is involved in the problem, I thought y'all should know
about it in case there was something you could do to make your code more
robust.

C:\wamp\logs\apache_error.log:
[Tue Oct 30 11:58:42 2007] [notice] Parent: child process exited with
status 3221225477 -- Restarting.

Analysys Summary from Debug Diagnostic Tool:
In
httpd__PID__5256__Date__10_29_2007__Time_07_05_58PM__48__Second_Chance_Exception_C00000FD.dmp
the assembly instruction at php5ts!xbuf_format_converter+5b in
C:\wamp\Apache2\bin\php5ts.dll from The PHP Group has caused a stack
overflow exception (0xC00000FD) when trying to write to memory location
0x01b82ffc on thread 15



Reproduce code:
---------------
This is merely to demonstrate what I'm doing.  I was hoping it might be
reproducible with any kind of "hello world" service.  I am behind on my
deadline and need to get caught up before I can spend a lot of time on
this.  I will try to pare down the amount of code to the smallest necessary
to reproduce, if it turns out to be a very specific circumstance.

require_once ('SOAP/Client.php'); // pear soap-0.11.0
define('RBI_COMMON_AUTH_WS_URL',
'http://localhost/WebServices/AuthenticationWS/service.php?wsdl');
define('RBICA_APP', 'BLOG');
define('RBICA_APP_TOKEN_ID', 'PERM_BLOG');
$wsdl_ca = new SOAP_WSDL (RBI_COMMON_AUTH_WS_URL,array('timeout' => 30));
$client_ca = $wsdl_ca->getProxy();
$wpUserId = $login->ID;
$result = $client_ca->GetMasterID(RBICA_APP_TOKEN_ID, RBICA_APP,
(integer)$wpUserId);  // GetMasterID happens to not exist in the current
version of the service.


Expected result:
----------------
(be automatically logged in to WordPress via our in-house common
authentication service)

Actual result:
--------------
Report for
httpd__PID__5256__Date__10_29_2007__Time_07_05_58PM__48__Second_Chance_Exception_C00000FD.dmp
Type of Analysis Performed   Crash Analysis 
Machine Name   HRAORROCKJ1D 
Operating System   Windows XP Service Pack 2 
Number Of Processors   2 
Process ID   5256 
Process Image   C:\wamp\Apache2\bin\httpd.exe 
System Up-Time   10 day(s) 08:39:57 
Process Up-Time   00:03:23 

Thread 15 - System ID 784
Entry point   msvcrt!_endthreadex+3a 
Create time   10/29/2007 7:02:35 PM 
Time spent in user mode   0 Days 0:0:0.500 
Time spent in kernel mode   0 Days 0:0:0.62 

Function     Arg 1     Arg 2     Arg 3   Source 
php5ts!xbuf_format_converter+5b     01b83280     00a359ac     01b8332c   

php5ts!vspprintf+29     01b832b8     00000400     00a359ac    
php5ts!php_error_cb+3a     00000800     07da1180     0000015f    
php5ts!zend_error+43e     00000800     00a359ac     0079ca49    
php5ts!zif_is_a+f     00000002     08f9a0f0     00000000    
php5ts!zend_do_fcall_common_helper_SPEC+7d9     01b833b8     05cab000    
07dd7fd8    
php5ts!ZEND_DO_FCALL_SPEC_CONST_HANDLER+e5     00000000     05cab000    
08f96944    
php5ts!execute+1c5     07d95490     05cab000     05cab000    
php5ts!zend_do_fcall_common_helper_SPEC+8f8     01b83460     05cab000    
0079c1e5    
php5ts!ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER+15     01b83460     05cab000    
08f94b84    
php5ts!execute+1c5     07dcf3e8     05cab000     05cab000 

... followed by hundreds of lines similar to the following:

php5ts!zend_do_fcall_common_helper_SPEC+8f8     01b835b0     05cab000    
0079c1e5    
php5ts!ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER+15     01b835b0     05cab000    
08f8ea8c    
php5ts!execute+1c5     07dcf3e8     05cab000     05cab000    

... followed by:

php5ts!zend_do_fcall_common_helper_SPEC+8f8     01bbfbb0     05cab000    
0079c1e5    
php5ts!ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER+15     01bbfbb0     05cab000    
05cab000    
php5ts!execute+1c5     07d7e2e0     05cab000     00000000    
php5ts!zend_execute_scripts+107     00000008     05cab000     00000000   

php5ts!php_execute_script+20d     01bbfea0     05cab000     00000005    
php5apache2_2!php_handler+5cd     05d40e70     0074c4c0     05d40e70    
libhttpd!ap_run_handler+21     05d40e70     05d40e70     05d40e70    
libhttpd!ap_invoke_handler+ae     00000000     05d3e128     01bbff38    
libhttpd!ap_die+24e     05d40e70     00000000     0068e510    
libhttpd!ap_get_request_note+1c6c     05d3e128     05d3e128     05d3e128  
 
libhttpd!ap_run_process_connection+21     05d3e128     00716300    
01bbff80    
libhttpd!ap_process_connection+33     05d3e128     05cb9050     00000000  
 
libhttpd!ap_regkey_value_remove+c0c     05d3e120     00000000     00e10050
   
msvcrt!_endthreadex+a9     01018b08     00000000     00e10050    
kernel32!BaseThreadStart+37     77c3a341     01018b08     00000000    

PHP5TS!XBUF_FORMAT_CONVERTER+5BIn
httpd__PID__5256__Date__10_29_2007__Time_07_05_58PM__48__Second_Chance_Exception_C00000FD.dmp
the assembly instruction at php5ts!xbuf_format_converter+5b in
C:\wamp\Apache2\bin\php5ts.dll from The PHP Group has caused a stack
overflow exception (0xC00000FD) when trying to write to memory location
0x01b82ffc on thread 15

Module Information 
Image Name: C:\wamp\Apache2\bin\php5ts.dll   Symbol Type:  PDB 
Base address: 0x00780000   Time Stamp:  Thu Aug 30 05:06:12 2007  
Checksum: 0x00000000   Comments:   
COM DLL: False   Company Name:  The PHP Group 
ISAPIExtension: False   File Description:  PHP Script Interpreter 
ISAPIFilter: False   File Version:  5.2.4.4 
Managed DLL: False   Internal Name:  php5ts.dll 
VB DLL: False   Legal Copyright:  Copyright © 1997-2007 The PHP Group 
Loaded Image Name:  php5ts.dll   Legal Trademarks:  PHP 
Mapped Image Name:  C:\wamp\Apache2\bin\php5ts.dll   Original filename: 
php5ts.dll 
Module name:  php5ts   Private Build:   
Single Threaded:  False   Product Name:  PHP Script Interpreter 
Module Size:  4.86 MBytes   Product Version:  5.2.4 
Symbol File Name:  C:\xampp\php\debug\php5ts.pdb   Special Build:  & 


-- 
Edit bug report at http://bugs.php.net/?id=43150&edit=1
-- 
Try a CVS snapshot (PHP 4.4): 
http://bugs.php.net/fix.php?id=43150&r=trysnapshot44
Try a CVS snapshot (PHP 5.2): 
http://bugs.php.net/fix.php?id=43150&r=trysnapshot52
Try a CVS snapshot (PHP 5.3): 
http://bugs.php.net/fix.php?id=43150&r=trysnapshot53
Try a CVS snapshot (PHP 6.0): 
http://bugs.php.net/fix.php?id=43150&r=trysnapshot60
Fixed in CVS:                 http://bugs.php.net/fix.php?id=43150&r=fixedcvs
Fixed in release:             
http://bugs.php.net/fix.php?id=43150&r=alreadyfixed
Need backtrace:               http://bugs.php.net/fix.php?id=43150&r=needtrace
Need Reproduce Script:        http://bugs.php.net/fix.php?id=43150&r=needscript
Try newer version:            http://bugs.php.net/fix.php?id=43150&r=oldversion
Not developer issue:          http://bugs.php.net/fix.php?id=43150&r=support
Expected behavior:            http://bugs.php.net/fix.php?id=43150&r=notwrong
Not enough info:              
http://bugs.php.net/fix.php?id=43150&r=notenoughinfo
Submitted twice:              
http://bugs.php.net/fix.php?id=43150&r=submittedtwice
register_globals:             http://bugs.php.net/fix.php?id=43150&r=globals
PHP 3 support discontinued:   http://bugs.php.net/fix.php?id=43150&r=php3
Daylight Savings:             http://bugs.php.net/fix.php?id=43150&r=dst
IIS Stability:                http://bugs.php.net/fix.php?id=43150&r=isapi
Install GNU Sed:              http://bugs.php.net/fix.php?id=43150&r=gnused
Floating point limitations:   http://bugs.php.net/fix.php?id=43150&r=float
No Zend Extensions:           http://bugs.php.net/fix.php?id=43150&r=nozend
MySQL Configuration Error:    http://bugs.php.net/fix.php?id=43150&r=mysqlcfg

Reply via email to