From a17e84f2f7c50c5bb3847bc709578ba49ebb3f3f Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Fri, 21 Jul 2023 11:56:15 +0100 Subject: [PATCH] libxml_get_external_entity_loader(): test for incompatible resource being loaded (#11728) 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 00000000000..1bdbbfb5b81 --- /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"