Annotation of embedaddon/php/ext/xsl/tests/bug54446_with_ini.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Bug #54446 (Arbitrary file creation via libxslt 'output' extension with php.ini setting)
        !             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: ini_set("xsl.security_prefs", 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: ini_set("xsl.security_prefs", 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>