]> 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:08:04 +0000 (14:08 +0000)
committerDmitry Stogov <dmitry@php.net>
Thu, 2 Mar 2006 14:08:04 +0000 (14:08 +0000)
ext/soap/soap.c

index d9bbf21d84837d29b453a05eadf5d05229ae160e..9d76adb9d88d6247258b310d722258f991dc419d 100644 (file)
@@ -1726,7 +1726,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;
                }