WordPress.org

Make WordPress Core

Ticket #10424: 10424.diff

File 10424.diff, 1.4 KB (added by dd32, 5 years ago)
  • wp-admin/includes/file.php

     
    773773function get_filesystem_method($args = array(), $context = false) { 
    774774        $method = defined('FS_METHOD') ? FS_METHOD : false; //Please ensure that this is either 'direct', 'ssh', 'ftpext' or 'ftpsockets' 
    775775 
    776         if ( ! $method && function_exists('getmyuid') && function_exists('fileowner') ){ 
    777                 if ( !$context ) 
    778                         $context = WP_CONTENT_DIR; 
    779                 $context = trailingslashit($context); 
    780                 $temp_file_name = $context . 'temp-write-test-' . time(); 
    781                 $temp_handle = @fopen($temp_file_name, 'w'); 
    782                 if ( $temp_handle ) { 
    783                         if ( getmyuid() == @fileowner($temp_file_name) ) 
    784                                 $method = 'direct'; 
    785                         @fclose($temp_handle); 
    786                         @unlink($temp_file_name); 
     776        if ( !$context ) 
     777                $context = WP_CONTENT_DIR; 
     778 
     779        if ( ! $method && function_exists('fileowner') && is_writable($context) ) {              
     780                $owner = @fileowner(__FILE__); 
     781                if ( false !== $owner ) {  
     782                        $context = trailingslashit($context); 
     783                        $temp_file_name = $context . 'temp-write-test-' . time(); 
     784                        $temp_handle = @fopen($temp_file_name, 'w'); 
     785                        if ( $temp_handle ) { 
     786                                $php_owner = @fileowner($temp_file_name); 
     787                                if ( $php_owner === $owner ) // Success 
     788                                        $method = 'direct'; 
     789                                @fclose($temp_handle); 
     790                                @unlink($temp_file_name); 
     791                        } 
    787792                } 
    788793        } 
    789794