diff options
author | Xinchen Hui <laruence@php.net> | 2012-10-30 11:09:53 +0800 |
---|---|---|
committer | Xinchen Hui <laruence@php.net> | 2012-10-30 11:10:26 +0800 |
commit | 3342e7276c4d0ff0a8546c2f16eb706d6aadf185 (patch) | |
tree | c558d8a8554369a406ae1f132c7234aeff84f16a | |
parent | 4c08ee069cc1e299f5cc09c198f97bad30293cb1 (diff) | |
parent | 2f1c4064f8fd971166df3099729e74e0ecb5d6bc (diff) | |
download | php-git-3342e7276c4d0ff0a8546c2f16eb706d6aadf185.tar.gz |
Merge branch 'PHP-5.3' into PHP-5.4
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | ext/libxml/libxml.c | 2 | ||||
-rw-r--r-- | ext/libxml/tests/004.phpt | 22 | ||||
-rw-r--r-- | ext/libxml/tests/bug63389.phpt | 14 |
4 files changed, 30 insertions, 12 deletions
@@ -15,6 +15,10 @@ PHP NEWS . Fixed bug #63248 (Load multiple magic files from a directory under Windows). (Anatoliy) +- Libxml + . Fixed bug #63389 (Missing context check on libxml_set_streams_context() + causes memleak). (Laruence) + - OCI8: . Fixed bug #63265 (Add ORA-00028 to the PHP_OCI_HANDLE_ERROR macro) (Chris Jones) diff --git a/ext/libxml/libxml.c b/ext/libxml/libxml.c index a39c875b2c..c97ee6724d 100644 --- a/ext/libxml/libxml.c +++ b/ext/libxml/libxml.c @@ -918,7 +918,7 @@ static PHP_FUNCTION(libxml_set_streams_context) { zval *arg; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &arg) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &arg) == FAILURE) { return; } if (LIBXML(stream_context)) { diff --git a/ext/libxml/tests/004.phpt b/ext/libxml/tests/004.phpt index 8bdf593b93..aa87ab7503 100644 --- a/ext/libxml/tests/004.phpt +++ b/ext/libxml/tests/004.phpt @@ -27,26 +27,26 @@ echo "Done\n"; ?> --EXPECTF-- -Warning: stream_context_create(): options should have the form ["wrappername"]["optionname"] = $value in %s004.php on line 10 -NULL +Warning: stream_context_create(): options should have the form ["wrappername"]["optionname"] = $value in %s004.php on line %d -Warning: DOMDocument::load(): supplied argument is not a valid Stream-Context resource in %s004.php on line 18 -bool(true) +Warning: libxml_set_streams_context() expects parameter 1 to be resource, null given in %s004.php on line %d NULL - -Warning: DOMDocument::load(): supplied argument is not a valid Stream-Context resource in %s004.php on line 18 bool(true) -NULL -Warning: DOMDocument::load(): supplied argument is not a valid Stream-Context resource in %s004.php on line 18 -bool(true) +Warning: libxml_set_streams_context() expects parameter 1 to be resource, string given in %s004.php on line %d NULL +bool(true) -Warning: DOMDocument::load(): supplied argument is not a valid Stream-Context resource in %s004.php on line 18 +Warning: libxml_set_streams_context() expects parameter 1 to be resource, integer given in %s004.php on line %d +NULL bool(true) + +Warning: libxml_set_streams_context() expects parameter 1 to be resource, object given in %s004.php on line %d NULL +bool(true) -Warning: DOMDocument::load(): supplied argument is not a valid Stream-Context resource in %s004.php on line 18 +Warning: libxml_set_streams_context() expects parameter 1 to be resource, array given in %s004.php on line %d +NULL bool(true) NULL bool(true) diff --git a/ext/libxml/tests/bug63389.phpt b/ext/libxml/tests/bug63389.phpt new file mode 100644 index 0000000000..e9498aae08 --- /dev/null +++ b/ext/libxml/tests/bug63389.phpt @@ -0,0 +1,14 @@ +--TEST-- +Bug #63389 (Missing context check on libxml_set_streams_context() causes memleak) +--SKIPIF-- +<?php if (!extension_loaded('libxml')) die('skip'); ?> +--FILE-- +<?php +$fp = fopen("php://input", "r"); +libxml_set_streams_context($fp); +libxml_set_streams_context("a"); +echo "okey"; +?> +--EXPECTF-- +Warning: libxml_set_streams_context() expects parameter 1 to be resource, string given in %sbug63389.php on line %d +okey |