From a75c7977b946a42e3d3ed3d5545415836b1bcc4b Mon Sep 17 00:00:00 2001 From: Scott Taylor Date: Sat, 20 Dec 2014 21:09:11 +0000 Subject: [PATCH] In `wp_import_handle_upload()`: `$file` was essentially getting declared/overwritten 3 times. In lieu of this, return an array containing the error immediately instead of doing a short-circuit array key assignment on error. Rename the local variable to `$upload` and use its properties instead of creating 3 new local vars, one of which stomped the array. See #30799. git-svn-id: https://develop.svn.wordpress.org/trunk@30980 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-admin/includes/import.php | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/src/wp-admin/includes/import.php b/src/wp-admin/includes/import.php index ab8e8e3db0..55c6e78bb9 100644 --- a/src/wp-admin/includes/import.php +++ b/src/wp-admin/includes/import.php @@ -76,34 +76,32 @@ function wp_import_cleanup( $id ) { * @return array Uploaded file's details on success, error message on failure */ function wp_import_handle_upload() { - if ( !isset($_FILES['import']) ) { - $file['error'] = __( 'File is empty. Please upload something more substantial. This error could also be caused by uploads being disabled in your php.ini or by post_max_size being defined as smaller than upload_max_filesize in php.ini.' ); - return $file; + if ( ! isset( $_FILES['import'] ) ) { + return array( + 'error' => __( 'File is empty. Please upload something more substantial. This error could also be caused by uploads being disabled in your php.ini or by post_max_size being defined as smaller than upload_max_filesize in php.ini.' ) + ); } $overrides = array( 'test_form' => false, 'test_type' => false ); $_FILES['import']['name'] .= '.txt'; - $file = wp_handle_upload( $_FILES['import'], $overrides ); + $upload = wp_handle_upload( $_FILES['import'], $overrides ); - if ( isset( $file['error'] ) ) - return $file; - - $url = $file['url']; - $type = $file['type']; - $file = $file['file']; - $filename = basename( $file ); + if ( isset( $upload['error'] ) ) { + return $upload; + } // Construct the object array - $object = array( 'post_title' => $filename, - 'post_content' => $url, - 'post_mime_type' => $type, - 'guid' => $url, + $object = array( + 'post_title' => basename( $upload['file'] ), + 'post_content' => $upload['url'], + 'post_mime_type' => $upload['type'], + 'guid' => $upload['url'], 'context' => 'import', 'post_status' => 'private' ); // Save the data - $id = wp_insert_attachment( $object, $file ); + $id = wp_insert_attachment( $object, $upload['file'] ); /* * Schedule a cleanup for one day from now in case of failed @@ -111,7 +109,7 @@ function wp_import_handle_upload() { */ wp_schedule_single_event( time() + DAY_IN_SECONDS, 'importer_scheduled_cleanup', array( $id ) ); - return array( 'file' => $file, 'id' => $id ); + return array( 'file' => $upload['file'], 'id' => $id ); } /**