Annotation of embedaddon/php/ext/libxml/tests/bug61367-write.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Bug #61367: open_basedir bypass in libxml RSHUTDOWN: write test
        !             3: --SKIPIF--
        !             4: <?php if(!extension_loaded('dom')) echo 'skip'; ?>
        !             5: --INI--
        !             6: open_basedir=.
        !             7: ; Suppress spurious "Trying to get property of non-object" notices
        !             8: error_reporting=E_ALL & ~E_NOTICE
        !             9: --FILE--
        !            10: <?php
        !            11: 
        !            12: class StreamExploiter {
        !            13:        public function stream_close (  ) {
        !            14:                $doc = new DOMDocument;
        !            15:                $doc->appendChild($doc->createTextNode('hello')); 
        !            16:                var_dump($doc->save(dirname(getcwd()) . '/bad'));
        !            17:        }
        !            18: 
        !            19:        public function stream_open (  $path ,  $mode ,  $options ,  &$opened_path ) {
        !            20:                return true;
        !            21:        }
        !            22: }
        !            23: 
        !            24: var_dump(mkdir('test_bug_61367'));
        !            25: var_dump(mkdir('test_bug_61367/base'));
        !            26: var_dump(file_put_contents('test_bug_61367/bad', 'blah'));
        !            27: var_dump(chdir('test_bug_61367/base'));
        !            28: 
        !            29: stream_wrapper_register( 'exploit', 'StreamExploiter' );
        !            30: $s = fopen( 'exploit://', 'r' );
        !            31: 
        !            32: ?>
        !            33: --CLEAN--
        !            34: <?php
        !            35: @unlink('test_bug_61367/bad');
        !            36: rmdir('test_bug_61367/base');
        !            37: rmdir('test_bug_61367');
        !            38: ?>
        !            39: --EXPECTF--
        !            40: bool(true)
        !            41: bool(true)
        !            42: int(4)
        !            43: bool(true)
        !            44: 
        !            45: Warning: DOMDocument::save(): open_basedir restriction in effect. File(%s) is not within the allowed path(s): (.) in %s on line %d
        !            46: 
        !            47: Warning: DOMDocument::save(%s): failed to open stream: Operation not permitted in %s on line %d
        !            48: bool(false)

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