From a702aaaff39ad868fdb93397b7985d066986cad4 Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Tue, 1 Nov 2022 02:27:24 +0000 Subject: [PATCH] libxml_get_external_entity_loader(): test for incompatible resource being loaded A stream resource is expected to be returned by the handler. --- ...nal_entity_loader_error_callback_name.phpt | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 ext/libxml/tests/libxml_get_external_entity_loader_error_callback_name.phpt diff --git a/ext/libxml/tests/libxml_get_external_entity_loader_error_callback_name.phpt b/ext/libxml/tests/libxml_get_external_entity_loader_error_callback_name.phpt new file mode 100644 index 0000000000000..1bdbbfb5b817e --- /dev/null +++ b/ext/libxml/tests/libxml_get_external_entity_loader_error_callback_name.phpt @@ -0,0 +1,43 @@ +--TEST-- +libxml_get_external_entity_loader() display correct callable name +--EXTENSIONS-- +dom +dba +--FILE-- + +bar +XML; + +$dtd = << +DTD; + +class Handler { + public function handle($public, $system, $context) { + $file = __DIR__ . '/db.dba'; + return dba_open($file, 'n'); + } +} + +$o = new Handler(); +libxml_set_external_entity_loader([$o, 'handle']); +$dd = new DOMDocument; +$r = $dd->loadXML($xml); + +try { + var_dump($dd->validate()); +} catch (\Throwable $e) { + var_dump($e->getMessage()); +} + +?> +--CLEAN-- + +--EXPECT-- +string(73) "DOMDocument::validate(): supplied resource is not a valid stream resource"