[wp-trac] [WordPress Trac] #22900: is_writable function fails on Windows systems causing spurious http_request_failed error

WordPress Trac noreply at wordpress.org
Wed Dec 12 21:45:10 UTC 2012


#22900: is_writable function fails on Windows systems causing spurious
http_request_failed error
-----------------------------+--------------------------
 Reporter:  Otto42           |       Type:  defect (bug)
   Status:  new              |   Priority:  normal
Milestone:  Awaiting Review  |  Component:  HTTP
  Version:  3.5              |   Severity:  normal
 Keywords:                   |
-----------------------------+--------------------------
 In class-http.php, in request(), there is a double check to be sure a file
 is writable using this code:

 {{{
 $r['filename'] = get_temp_dir() . basename( $url );

 ...

 if ( ! is_writable( dirname( $r['filename'] ) ) )
         return new WP_Error( 'http_request_failed', __( 'Destination
 directory for file streaming does not exist or is not writable.' ) );
 }}}

 Problem is that is_writable can return false incorrectly on Windows
 systems, due to a PHP bug:
 https://bugs.php.net/bug.php?id=30931

 Now, get_temp_dir() already performs an is_writable check on the resulting
 temp directories, and it uses a win_is_writable() call to work around this
 problem on Windows systems.

 Thus, this secondary check is seemingly unnecessary anyway, anything
 returned by get_temp_dir() really should be writable.

 So either the writable check in class-http.php needs to be made Windows
 compatible, or removed entirely.

 A few reports of the problem on support forums:
 http://wordpress.org/support/topic/plugin-upgrades-fail-after-update-to-
 wp-35?replies=6
 http://wordpress.org/support/topic/plugin-update-not-writeable?replies=14
 http://wordpress.org/support/topic/download-failed-destination-directory-
 for-file-streaming-does-not-exist?replies=2

 This problem may have been exacerbated by #20778.

-- 
Ticket URL: <http://core.trac.wordpress.org/ticket/22900>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list