Make WordPress Core

Ticket #36170: 36170.diff

File 36170.diff, 1.4 KB (added by borgesbruno, 10 years ago)

Patch 36170

  • src/wp-includes/functions.php

     
    40004000 * @param array  $allowed_files List of allowed files.
    40014001 * @return int 0 means nothing is wrong, greater than 0 means something was wrong.
    40024002 */
    4003 function validate_file( $file, $allowed_files = '' ) {
     4003function validate_file( $file, $allowed_files = array() ) {
    40044004        if ( false !== strpos( $file, '..' ) )
    40054005                return 1;
    40064006
  • tests/phpunit/tests/functions.php

     
    150150                );
    151151        }
    152152
     153        /**
     154         * @dataProvider file_path_provider
     155         */
     156        function test_validate_file($result, $allowed_files, $expected)
     157        {
     158                $this->assertEquals($expected, validate_file($result, $allowed_files));
     159        }
     160
     161        function file_path_provider() {
     162                return array(
     163                        array('../foo/foo.txt', '', 1),
     164                        array('../foo.txt', '', 1),
     165                        array('../foo.bar', '', 1),
     166                        array('foo/bar/foo.txt', '', 0),
     167                        array('FOO/foo.txt', '', 0),
     168                        array('C:/WINDOWS/system32', '', 2),
     169                        array('./FOO/foo.txt', '', 1),
     170                        array('/FOO/notallowed.txt', array('/FOO/allowed.txt'), 3)
     171                );
     172        }
     173
    153174        function test_wp_unique_filename() {
    154175
    155176                $testdir = DIR_TESTDATA . '/images/';