From: Dmitry Stogov Date: Wed, 25 Feb 2004 14:37:06 +0000 (+0000) Subject: HTTP compression (memory leak was fixed) X-Git-Tag: RELEASE_0_2_0~171 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ab968b3d032771977f14d9353c18549899a57dec;p=php HTTP compression (memory leak was fixed) --- diff --git a/ext/soap/soap.c b/ext/soap/soap.c index b933adecab..adf219072c 100644 --- a/ext/soap/soap.c +++ b/ext/soap/soap.c @@ -1285,6 +1285,7 @@ PHP_METHOD(soapserver, handle) if (call_user_function(CG(function_table), (zval**)NULL, &func, &retval, 1, params TSRMLS_CC) == SUCCESS && Z_TYPE(retval) == IS_STRING) { doc_request = soap_xmlParseMemory(Z_STRVAL(retval),Z_STRLEN(retval)); + zval_dtor(&retval); } else { php_error(E_ERROR,"Can't uncompress compressed request"); } diff --git a/ext/soap/tests/server019.phpt b/ext/soap/tests/server019.phpt new file mode 100644 index 0000000000..4ad9c5ee85 --- /dev/null +++ b/ext/soap/tests/server019.phpt @@ -0,0 +1,37 @@ +--TEST-- +SOAP Server 19: compressed request (gzip) +--SKIPIF-- + +--FILE-- +"http://testuri.org")); +$server->addfunction("test"); + +$HTTP_RAW_POST_DATA = gzencode(<< + + + + + +EOF +, 9, FORCE_GZIP); +$_SERVER['HTTP_CONTENT_ENCODING'] = "gzip"; +$server->handle(); +echo "ok\n"; +?> +--EXPECT-- + +Hello World +ok diff --git a/ext/soap/tests/server020.phpt b/ext/soap/tests/server020.phpt new file mode 100644 index 0000000000..bacbc57849 --- /dev/null +++ b/ext/soap/tests/server020.phpt @@ -0,0 +1,37 @@ +--TEST-- +SOAP Server 20: compressed request (deflate) +--SKIPIF-- + +--FILE-- +"http://testuri.org")); +$server->addfunction("test"); + +$HTTP_RAW_POST_DATA = gzcompress(<< + + + + + +EOF +, 9); +$_SERVER['HTTP_CONTENT_ENCODING'] = "deflate"; +$server->handle(); +echo "ok\n"; +?> +--EXPECT-- + +Hello World +ok