diff options
author | Dmitry Stogov <dmitry@php.net> | 2008-11-27 11:25:40 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2008-11-27 11:25:40 +0000 |
commit | f80d26e68ac13eae84329cea7a6e6ece9d87701f (patch) | |
tree | 01046e456b786071929ba83fa8451b77ec003f9b | |
parent | b388624d7da7beb3b36b1a9e64ce8e3c9b66a345 (diff) | |
download | php-git-f80d26e68ac13eae84329cea7a6e6ece9d87701f.tar.gz |
Fixed bug #46427 (SoapClient() stumbles over its "stream_context" parameter)
-rw-r--r-- | ext/soap/soap.c | 1 | ||||
-rw-r--r-- | ext/soap/tests/bugs/bug46427.phpt | 20 |
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 |