mirror of
https://github.com/php/php-src.git
synced 2025-08-18 06:58:55 +02:00
Added test for XSL bug 54446
This commit is contained in:
parent
9bbb03391f
commit
cc2fd64121
1 changed files with 95 additions and 0 deletions
95
ext/xsl/tests/bug54446.phpt
Normal file
95
ext/xsl/tests/bug54446.phpt
Normal file
|
@ -0,0 +1,95 @@
|
|||
--TEST--
|
||||
Bug #54446 (Arbitrary file creation via libxslt 'output' extension)
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!extension_loaded('xsl')) die("skip Extension XSL is required\n");
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
include("prepare.inc");
|
||||
|
||||
$outputfile = dirname(__FILE__)."/bug54446test.txt";
|
||||
if (file_exists($outputfile)) {
|
||||
unlink($outputfile);
|
||||
}
|
||||
|
||||
$sXsl = <<<EOT
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:sax="http://icl.com/saxon"
|
||||
extension-element-prefixes="sax">
|
||||
|
||||
<xsl:template match="/">
|
||||
<sax:output href="$outputfile" method="text">
|
||||
<xsl:value-of select="'0wn3d via PHP and libxslt ...'"/>
|
||||
</sax:output>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
EOT;
|
||||
|
||||
$xsl->loadXML( $sXsl );
|
||||
|
||||
# START XSLT
|
||||
$proc->importStylesheet( $xsl );
|
||||
|
||||
# TRASNFORM & PRINT
|
||||
print $proc->transformToXML( $dom );
|
||||
|
||||
|
||||
if (file_exists($outputfile)) {
|
||||
print "$outputfile exists, but shouldn't!\n";
|
||||
} else {
|
||||
print "OK, no file created\n";
|
||||
}
|
||||
|
||||
#SET NO SECURITY PREFS
|
||||
$proc->setSecurityPrefs(XSL_SECPREF_NONE);
|
||||
|
||||
# TRASNFORM & PRINT
|
||||
print $proc->transformToXML( $dom );
|
||||
|
||||
|
||||
if (file_exists($outputfile)) {
|
||||
print "OK, file exists\n";
|
||||
} else {
|
||||
print "$outputfile doesn't exist, but should!\n";
|
||||
}
|
||||
|
||||
unlink($outputfile);
|
||||
|
||||
#SET SECURITY PREFS AGAIN
|
||||
$proc->setSecurityPrefs( XSL_SECPREF_WRITE_FILE | XSL_SECPREF_WRITE_NETWORK | XSL_SECPREF_CREATE_DIRECTORY);
|
||||
|
||||
# TRASNFORM & PRINT
|
||||
print $proc->transformToXML( $dom );
|
||||
|
||||
if (file_exists($outputfile)) {
|
||||
print "$outputfile exists, but shouldn't!\n";
|
||||
} else {
|
||||
print "OK, no file created\n";
|
||||
}
|
||||
|
||||
|
||||
--EXPECTF--
|
||||
Warning: XSLTProcessor::transformToXml(): runtime error: file %s line %s element output in %s on line %d
|
||||
|
||||
Warning: XSLTProcessor::transformToXml(): File write for %s/bug54446test.txt refused in %s on line %s
|
||||
|
||||
Warning: XSLTProcessor::transformToXml(): runtime error: file %s line %d element output in %s on line %d
|
||||
|
||||
Warning: XSLTProcessor::transformToXml(): xsltDocumentElem: write rights for %s/bug54446test.txt denied in %s on line %d
|
||||
OK, no file created
|
||||
OK, file exists
|
||||
|
||||
Warning: XSLTProcessor::transformToXml(): runtime error: file %s line %s element output in %s on line %d
|
||||
|
||||
Warning: XSLTProcessor::transformToXml(): File write for %s/bug54446test.txt refused in %s on line %s
|
||||
|
||||
Warning: XSLTProcessor::transformToXml(): runtime error: file %s line %d element output in %s on line %d
|
||||
|
||||
Warning: XSLTProcessor::transformToXml(): xsltDocumentElem: write rights for %s/bug54446test.txt denied in %s on line %d
|
||||
OK, no file created
|
||||
--CREDITS--
|
||||
Christian Stocker, chregu@php.net
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue