]> granicus.if.org Git - php/commitdiff
Fixed bug #36388 (ext/soap crashes when throwing exception and session persistence...
authorDmitry Stogov <dmitry@php.net>
Thu, 2 Mar 2006 14:07:48 +0000 (14:07 +0000)
committerDmitry Stogov <dmitry@php.net>
Thu, 2 Mar 2006 14:07:48 +0000 (14:07 +0000)
NEWS
ext/soap/soap.c

diff --git a/NEWS b/NEWS
index 405d5a3bba36a0a6fafe8f332d903fdd82639f44..c0caa37cb576e95a64baab1a138f994839d92737 100644 (file)
--- 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)
index 71fd1f90560fab60bac2e220e70ab8a293470447..1447b435f7193117fcc723e747f595a9c194b2df 100644 (file)
@@ -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;
                }