summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2008-11-27 11:25:40 +0000
committerDmitry Stogov <dmitry@php.net>2008-11-27 11:25:40 +0000
commitf80d26e68ac13eae84329cea7a6e6ece9d87701f (patch)
tree01046e456b786071929ba83fa8451b77ec003f9b
parentb388624d7da7beb3b36b1a9e64ce8e3c9b66a345 (diff)
downloadphp-git-f80d26e68ac13eae84329cea7a6e6ece9d87701f.tar.gz
Fixed bug #46427 (SoapClient() stumbles over its "stream_context" parameter)
-rw-r--r--ext/soap/soap.c1
-rw-r--r--ext/soap/tests/bugs/bug46427.phpt20
2 files changed, 21 insertions, 0 deletions
diff --git a/ext/soap/soap.c b/ext/soap/soap.c
index 2bee639121..09faf2345a 100644
--- a/ext/soap/soap.c
+++ b/ext/soap/soap.c
@@ -2522,6 +2522,7 @@ PHP_METHOD(SoapClient, SoapClient)
if (zend_hash_find(ht, "stream_context", sizeof("stream_context"), (void**)&tmp) == SUCCESS &&
Z_TYPE_PP(tmp) == IS_RESOURCE) {
context = php_stream_context_from_zval(*tmp, 1);
+ zend_list_addref(context->rsrc_id);
}
if (zend_hash_find(ht, "location", sizeof("location"), (void**)&tmp) == SUCCESS &&
diff --git a/ext/soap/tests/bugs/bug46427.phpt b/ext/soap/tests/bugs/bug46427.phpt
new file mode 100644
index 0000000000..5cf2e8f968
--- /dev/null
+++ b/ext/soap/tests/bugs/bug46427.phpt
@@ -0,0 +1,20 @@
+--TEST--
+Bug #46427 (SoapClient() stumbles over its "stream_context" parameter)
+--FILE--
+<?php
+error_reporting(E_ALL|E_STRICT);
+
+function getSoapClient_1() {
+ $ctx = stream_context_create();
+ return new SoapClient(NULL, array(
+ 'stream_context' => $ctx,
+ 'location' => 'test://',
+ 'uri' => 'test://',
+ 'exceptions' => false));
+}
+
+getSoapClient_1()->__soapCall('Help', array());
+echo "ok\n";
+?>
+--EXPECT--
+ok