diff options
author | Ville Hukkamaki <vhu@iki.fi> | 2018-08-22 06:19:14 +0200 |
---|---|---|
committer | Christoph M. Becker <cmbecker69@gmx.de> | 2018-08-22 12:51:06 +0200 |
commit | cf2fc66b0289dc7a34a0d9c0e67bccb8e97472bd (patch) | |
tree | 5126b82f0bfa80856d04c93fb1fb452a16b0c3bd /ext | |
parent | 4c542e6c13ca0d1b3944efee715a4dadb4794c7c (diff) | |
download | php-git-cf2fc66b0289dc7a34a0d9c0e67bccb8e97472bd.tar.gz |
Fixed bug #76777 and added test
Set undefined values to null rather than undefined.
Diffstat (limited to 'ext')
-rw-r--r-- | ext/libxml/libxml.c | 4 | ||||
-rw-r--r-- | ext/libxml/tests/bug76777.phpt | 43 |
2 files changed, 45 insertions, 2 deletions
diff --git a/ext/libxml/libxml.c b/ext/libxml/libxml.c index 226228bbb4..85f239d5c7 100644 --- a/ext/libxml/libxml.c +++ b/ext/libxml/libxml.c @@ -591,12 +591,12 @@ static xmlParserInputPtr _php_libxml_external_entity_loader(const char *URL, if (ID != NULL) { ZVAL_STRING(¶ms[0], ID); } else { - ZVAL_UNDEF(¶ms[0]); + ZVAL_NULL(¶ms[0]); } if (URL != NULL) { ZVAL_STRING(¶ms[1], URL); } else { - ZVAL_UNDEF(¶ms[1]); + ZVAL_NULL(¶ms[1]); } ctxzv = ¶ms[2]; array_init_size(ctxzv, 4); diff --git a/ext/libxml/tests/bug76777.phpt b/ext/libxml/tests/bug76777.phpt new file mode 100644 index 0000000000..ba9fd698e0 --- /dev/null +++ b/ext/libxml/tests/bug76777.phpt @@ -0,0 +1,43 @@ +--TEST-- +Bug #76777 (first parameter of libxml_set_external_entity_loader callback undefined) +--SKIPIF-- +<?php +if (!extension_loaded('libxml')) die('skip'); +if (getenv("SKIP_ONLINE_TESTS")) die('skip online test'); +?> +--FILE-- +<?php +$xml=<<<EOF +<?xml version="1.0"?> +<test/> +EOF; + +$xsd=<<<EOF +<?xml version="1.0"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:include schemaLocation="nonexistent.xsd"/> + <xs:element name="test"/> +</xs:schema> +EOF; + +libxml_set_external_entity_loader(function($p,$s,$c) { + var_dump($p,$s,$c); + die(); +}); + +$dom=new DOMDocument($xml); +$dom->schemaValidateSource($xsd); +?> +--EXPECTF-- +NULL +string(15) "nonexistent.xsd" +array(4) { + ["directory"]=> + NULL + ["intSubName"]=> + NULL + ["extSubURI"]=> + NULL + ["extSubSystem"]=> + NULL +} |