ID: 37083
Updated by: dmitry@php.net
Reported By: thetaphi@php.net
-Status: Assigned
+Status: Closed
Bug Type: SOAP related
Operating System: *
PHP Version: 5CVS-2006-04-14 (snap)
Assigned To: andrei
New Comment:
Fixed in CVS HEAD and PHP_5_1.
Previous Comments:
------------------------------------------------------------------------
[2006-04-16 00:26:21] thetaphi@php.net
And when returning an empty Apache Map (see wsdl) in the AXIS code it
does not crash anymore. With all that the problem seems to be the
decoding of the Apache Map entries of type xsd:anyType values from the
SOAP response to PHP datatypes.
------------------------------------------------------------------------
[2006-04-16 00:09:46] thetaphi@php.net
From the logs on the AXIS side of the server I can see that the crash
now occurs on the decoding side (parsing the response from AXIS). Hope
that helps...
------------------------------------------------------------------------
[2006-04-15 21:50:44] thetaphi@php.net
And xsd:anyType is mapped to xml without encoding... Could this be the
problem now?
------------------------------------------------------------------------
[2006-04-15 20:46:55] tony2001@php.net
Andrei, also take a look at these lines in php_encoding.c:
line 358
if (encode == NULL) {
encode = get_conversion(UNKNOWN_TYPE);
}
if (encode->to_xml_before) {
data = encode->to_xml_before(&encode->details, data);
}
line 365
The get_conversion() may return NULL, but you're using encode without
checking it for NULL.
From what I can see, the backtrace points exactly to this problem:
Program received signal SIGSEGV, Segmentation fault.
master_to_xml (encode=0x424b60, data=0x43fc28, style=1,
parent=0x429740)
at /pangaea/install/php5.1-200604131430/ext/soap/php_encoding.c:363
363 data =
encode->to_xml_before(&encode->details, data);
------------------------------------------------------------------------
[2006-04-15 16:40:42] thetaphi@php.net
From the webserver log i can see that the crash occurs always in
function "get_conversion()" (SIGSEGV or SIGBUS):
CORE3262: Crash occurred in function get_conversion from module
/pangaea/webserver61/bin/libphp5.so
Funny is the follwing:
CORE3262: Crash occurred in function free from module
/usr/lib/libmtmalloc.so.1
When server dies with SIGILL (which is mostly the case)nothing is said
about the location.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/37083
--
Edit this bug report at http://bugs.php.net/?id=37083&edit=1