From: Dmitry Stogov Date: Thu, 2 Mar 2006 14:07:48 +0000 (+0000) Subject: Fixed bug #36388 (ext/soap crashes when throwing exception and session persistence... X-Git-Tag: php-5.1.3RC1~46 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=65cca0dc2080ba3303355310a85c0a7d4d830ce8;p=php Fixed bug #36388 (ext/soap crashes when throwing exception and session persistence). (David) --- diff --git a/NEWS b/NEWS index 405d5a3bba..c0caa37cb5 100644 --- a/NEWS +++ b/NEWS @@ -53,6 +53,8 @@ PHP NEWS - Fixed bug #36396 (strtotime() fails to parse dates in dd-mm-yyyy format). (Derick) - Fixed bug #36345 (PDO/MySQL problem loading BLOB over 1MB). (Ilia) +- Fixed bug #36388 (ext/soap crashes when throwing exception and session + persistence). (David) - Fixed bug #36382 (PDO/PgSQL's getColumnMeta() crashes). (Derick) - Fixed bug #36359 (splFileObject::fwrite() doesn't write when no data length specified). (Tony) diff --git a/ext/soap/soap.c b/ext/soap/soap.c index 71fd1f9056..1447b435f7 100644 --- a/ext/soap/soap.c +++ b/ext/soap/soap.c @@ -1724,7 +1724,13 @@ PHP_METHOD(SoapServer, handle) instanceof_function(Z_OBJCE_P(EG(exception)), soap_fault_class_entry TSRMLS_CC)) { soap_server_fault_ex(function, EG(exception), NULL TSRMLS_CC); } else { - if (soap_obj) {zval_ptr_dtor(&soap_obj);} +#if HAVE_PHP_SESSION && !defined(COMPILE_DL_SESSION) + if (soap_obj && service->soap_class.persistance != SOAP_PERSISTENCE_SESSION) { +#else + if (soap_obj) { +#endif + zval_ptr_dtor(&soap_obj); + } php_end_ob_buffer(0, 0 TSRMLS_CC); goto fail; }