Make WordPress Core

Ticket #22149: 22149.diff

File 22149.diff, 1.9 KB (added by kovshenin, 12 years ago)

Limits uploads to only images in custom-header.php and custom-background.php

  • wp-admin/custom-header.php

     
    763763         */
    764764        function step_2_manage_upload() {
    765765                $overrides = array('test_form' => false);
    766                 $file = wp_handle_upload($_FILES['import'], $overrides);
    767766
     767                // Allowed mime types for header images.
     768                $allowed_mime_types = array(
     769                        'image/jpeg',
     770                        'image/gif',
     771                        'image/png',
     772                        'image/bmp',
     773                        'image/tiff',
     774                        'image/x-icon',
     775                );
     776
     777                $file = $_FILES['import'];
     778                $wp_filetype = wp_check_filetype_and_ext( $file['tmp_name'], $file['name'], false );
     779                if ( ! in_array( $wp_filetype['type'], $allowed_mime_types ) )
     780                        wp_die( __( 'The uploaded file is not a valid image. Please try again.' ) );
     781
     782                $file = wp_handle_upload($file, $overrides);
     783
    768784                if ( isset($file['error']) )
    769785                        wp_die( $file['error'],  __( 'Image Upload Error' ) );
    770786
  • wp-admin/custom-background.php

     
    358358
    359359                check_admin_referer('custom-background-upload', '_wpnonce-custom-background-upload');
    360360                $overrides = array('test_form' => false);
    361                 $file = wp_handle_upload($_FILES['import'], $overrides);
    362361
     362                // Allowed mime types for background images.
     363                $allowed_mime_types = array(
     364                        'image/jpeg',
     365                        'image/gif',
     366                        'image/png',
     367                        'image/bmp',
     368                        'image/tiff',
     369                        'image/x-icon',
     370                );
     371
     372                $file = $_FILES['import'];
     373                $wp_filetype = wp_check_filetype_and_ext( $file['tmp_name'], $file['name'], false );
     374                if ( ! in_array( $wp_filetype['type'], $allowed_mime_types ) )
     375                        wp_die( __( 'The uploaded file is not a valid image. Please try again.' ) );
     376
     377                $file = wp_handle_upload($file, $overrides);
     378
    363379                if ( isset($file['error']) )
    364380                        wp_die( $file['error'] );
    365381