File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / xsl / tests / bug54446.phpt
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:34:41 2012 UTC (12 years, 1 month ago) by misho
Branches: php, MAIN
CVS tags: v5_4_3elwix, v5_4_29p0, v5_4_29, v5_4_20p0, v5_4_20, v5_4_17p0, v5_4_17, HEAD
php 5.4.3+patches

    1: --TEST--
    2: Bug #54446 (Arbitrary file creation via libxslt 'output' extension)
    3: --SKIPIF--
    4: <?php
    5: if (!extension_loaded('xsl')) die("skip Extension XSL is required\n");
    6: ?>
    7: --FILE--
    8: <?php
    9: include("prepare.inc"); 
   10: 
   11: $outputfile = dirname(__FILE__)."/bug54446test.txt";
   12: if (file_exists($outputfile)) {
   13:     unlink($outputfile);
   14: }
   15: 
   16: $sXsl = <<<EOT
   17: <xsl:stylesheet version="1.0"
   18: 	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   19: 	xmlns:sax="http://icl.com/saxon"
   20: 	extension-element-prefixes="sax">
   21: 
   22: 	<xsl:template match="/">
   23: 		<sax:output href="$outputfile" method="text">
   24: 			<xsl:value-of select="'0wn3d via PHP and libxslt ...'"/>
   25: 		</sax:output>
   26: 	</xsl:template>
   27: 
   28: </xsl:stylesheet>
   29: EOT;
   30: 
   31: $xsl->loadXML( $sXsl );
   32: 
   33: # START XSLT 
   34: $proc->importStylesheet( $xsl ); 
   35: 
   36: # TRASNFORM & PRINT 
   37: print $proc->transformToXML( $dom ); 
   38: 
   39: 
   40: if (file_exists($outputfile)) {
   41:     print "$outputfile exists, but shouldn't!\n";
   42: } else {
   43:     print "OK, no file created\n";
   44: }
   45: 
   46: #SET NO SECURITY PREFS
   47: $proc->setSecurityPrefs(XSL_SECPREF_NONE);
   48: 
   49: # TRASNFORM & PRINT 
   50: print $proc->transformToXML( $dom ); 
   51: 
   52: 
   53: if (file_exists($outputfile)) {
   54:     print "OK, file exists\n";
   55: } else {
   56:     print "$outputfile doesn't exist, but should!\n";
   57: }
   58: 
   59: unlink($outputfile);
   60: 
   61: #SET SECURITY PREFS AGAIN
   62: $proc->setSecurityPrefs( XSL_SECPREF_WRITE_FILE |  XSL_SECPREF_WRITE_NETWORK | XSL_SECPREF_CREATE_DIRECTORY);
   63: 
   64: # TRASNFORM & PRINT 
   65: print $proc->transformToXML( $dom ); 
   66: 
   67: if (file_exists($outputfile)) {
   68:     print "$outputfile exists, but shouldn't!\n";
   69: } else {
   70:     print "OK, no file created\n";
   71: }
   72: 
   73: 
   74: --EXPECTF--
   75: Warning: XSLTProcessor::transformToXml(): runtime error: file %s line %s element output in %s on line %d
   76: 
   77: Warning: XSLTProcessor::transformToXml(): File write for %s/bug54446test.txt refused in %s on line %s
   78: 
   79: Warning: XSLTProcessor::transformToXml(): runtime error: file %s line %d element output in %s on line %d
   80: 
   81: Warning: XSLTProcessor::transformToXml(): xsltDocumentElem: write rights for %s/bug54446test.txt denied in %s on line %d
   82: OK, no file created
   83: OK, file exists
   84: 
   85: Warning: XSLTProcessor::transformToXml(): runtime error: file %s line %s element output in %s on line %d
   86: 
   87: Warning: XSLTProcessor::transformToXml(): File write for %s/bug54446test.txt refused in %s on line %s
   88: 
   89: Warning: XSLTProcessor::transformToXml(): runtime error: file %s line %d element output in %s on line %d
   90: 
   91: Warning: XSLTProcessor::transformToXml(): xsltDocumentElem: write rights for %s/bug54446test.txt denied in %s on line %d
   92: OK, no file created
   93: --CREDITS--
   94: Christian Stocker, chregu@php.net
   95: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>