xref: /PHP-8.3/ext/xsl/tests/bug71540.phpt (revision 74859783)
1--TEST--
2Bug #71540 (NULL pointer dereference in xsl_ext_function_php())
3--EXTENSIONS--
4xsl
5--SKIPIF--
6<?php
7if (LIBXML_VERSION >= 20903) die('skip this test is for PHP linked with libxml2 < 2.9.3 only')
8?>
9--FILE--
10<?php
11$xml = <<<EOB
12<allusers>
13 <user>
14  <uid>bob</uid>
15 </user>
16</allusers>
17EOB;
18$xsl = <<<EOB
19<?xml version="1.0" encoding="UTF-8"?>
20<xsl:stylesheet version="1.0"
21     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
22     xmlns:php="http://php.net/xsl">
23<xsl:output method="html" encoding="utf-8" indent="yes"/>
24 <xsl:template match="allusers">
25  <html><body>
26    <h2>Users</h2>
27    <table>
28    <xsl:for-each select="user">
29      <tr><td>
30        <xsl:value-of
31             select="php:function('test',uid,test(test))"/>
32      </td></tr>
33    </xsl:for-each>
34    </table>
35  </body></html>
36 </xsl:template>
37</xsl:stylesheet>
38EOB;
39
40$xmldoc = new DOMDocument();
41$xmldoc->loadXML($xml);
42$xsldoc = new DOMDocument();
43$xsldoc->loadXML($xsl);
44
45$proc = new XSLTProcessor();
46$proc->registerPHPFunctions();
47$proc->importStyleSheet($xsldoc);
48echo $proc->transformToXML($xmldoc);
49?>
50DONE
51--EXPECTF--
52Warning: XSLTProcessor::transformToXml(): xmlXPathCompOpEval: function test not found in %sbug71540.php on line %d
53
54Warning: XSLTProcessor::transformToXml(): Unregistered function in %sbug71540.php on line %d
55
56Warning: XSLTProcessor::transformToXml(): Stack usage error in %sbug71540.php on line %d
57
58Warning: XSLTProcessor::transformToXml(): Stack usage error in %sbug71540.php on line %d
59
60Warning: XSLTProcessor::transformToXml(): Handler name must be a string in %sbug71540.php on line %d
61
62Warning: XSLTProcessor::transformToXml(): xmlXPathCompiledEval: 2 objects left on the stack. in %sbug71540.php on line %d
63
64Warning: XSLTProcessor::transformToXml(): runtime error: file %s line 13 element value-of in %sbug71540.php on line %d
65
66Warning: XSLTProcessor::transformToXml(): XPath evaluation returned no result. in %sbug71540.php on line %d
67<html xmlns:php="http://php.net/xsl"><body>
68<h2>Users</h2>
69<table><tr><td></td></tr></table>
70</body></html>
71DONE
72