From a01023971462227952dbaa38b4c10464e50d77dd Mon Sep 17 00:00:00 2001 From: Peter Wilson Date: Fri, 29 Apr 2022 04:48:13 +0000 Subject: [PATCH] Media: Validate track number ID3 tags before use. Validate current and total track ID3 tags as numeric before use. Props mjkhajeh, SergeyBiryukov, costdev. Fixes #55204. git-svn-id: https://develop.svn.wordpress.org/trunk@53307 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-admin/includes/media.php | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/wp-admin/includes/media.php b/src/wp-admin/includes/media.php index 31c76bda65..95a29d5e52 100644 --- a/src/wp-admin/includes/media.php +++ b/src/wp-admin/includes/media.php @@ -361,12 +361,21 @@ function media_handle_upload( $file_id, $post_id, $post_data = array(), $overrid if ( ! empty( $meta['track_number'] ) ) { $track_number = explode( '/', $meta['track_number'] ); - if ( isset( $track_number[1] ) ) { - /* translators: Audio file track information. 1: Audio track number, 2: Total audio tracks. */ - $content .= ' ' . sprintf( __( 'Track %1$s of %2$s.' ), number_format_i18n( $track_number[0] ), number_format_i18n( $track_number[1] ) ); - } else { - /* translators: Audio file track information. %s: Audio track number. */ - $content .= ' ' . sprintf( __( 'Track %s.' ), number_format_i18n( $track_number[0] ) ); + if ( is_numeric( $track_number[0] ) ) { + if ( isset( $track_number[1] ) && is_numeric( $track_number[1] ) ) { + $content .= ' ' . sprintf( + /* translators: Audio file track information. 1: Audio track number, 2: Total audio tracks. */ + __( 'Track %1$s of %2$s.' ), + number_format_i18n( $track_number[0] ), + number_format_i18n( $track_number[1] ) + ); + } else { + $content .= ' ' . sprintf( + /* translators: Audio file track information. %s: Audio track number. */ + __( 'Track %s.' ), + number_format_i18n( $track_number[0] ) + ); + } } }