Changeset 40124 for trunk/src/wp-includes/functions.php
- Timestamp:
- 02/25/2017 04:07:25 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/functions.php
r40039 r40124 2270 2270 } 2271 2271 2272 $real_mime = false; 2273 2272 2274 // Validate image types. 2273 2275 if ( $type && 0 === strpos( $type, 'image/' ) ) { … … 2276 2278 $real_mime = wp_get_image_mime( $file ); 2277 2279 2278 if ( ! $real_mime ) { 2279 $type = $ext = false; 2280 } elseif ( $real_mime != $type ) { 2280 if ( $real_mime && $real_mime != $type ) { 2281 2281 /** 2282 2282 * Filters the list mapping image mime types to their respective extensions. … … 2309 2309 $type = $wp_filetype['type']; 2310 2310 } else { 2311 $type = $ext = false; 2311 // Reset $real_mime and try validating again. 2312 $real_mime = false; 2312 2313 } 2313 2314 } 2314 } elseif ( function_exists( 'finfo_file' ) ) { 2315 // Use finfo_file if available to validate non-image files. 2315 } 2316 2317 // Validate files that didn't get validated during previous checks. 2318 if ( $type && ! $real_mime && extension_loaded( 'fileinfo' ) ) { 2316 2319 $finfo = finfo_open( FILEINFO_MIME_TYPE ); 2317 2320 $real_mime = finfo_file( $finfo, $file ); 2318 2321 finfo_close( $finfo ); 2319 2322 2320 // If the extension does not match the file's real type, return false. 2321 if ( $real_mime !== $type ) { 2322 $type = $ext = false; 2323 /* 2324 * If $real_mime doesn't match what we're expecting, we need to do some extra 2325 * vetting of application mime types to make sure this type of file is allowed. 2326 * Other mime types are assumed to be safe, but should be considered unverified. 2327 */ 2328 if ( $real_mime && ( $real_mime !== $type ) && ( 0 === strpos( $real_mime, 'application' ) ) ) { 2329 $allowed = get_allowed_mime_types(); 2330 2331 if ( ! in_array( $real_mime, $allowed ) ) { 2332 $type = $ext = false; 2333 } 2323 2334 } 2324 2335 }
Note: See TracChangeset
for help on using the changeset viewer.