From abcbee954f4d8baa5aff2df566a942c1b48ca2d7 Mon Sep 17 00:00:00 2001 From: Gary Pendergast Date: Tue, 9 Jul 2019 05:45:58 +0000 Subject: [PATCH] Coding Standards: Fix instances of `WordPress.PHP.NoSilencedErrors.Discouraged`. Noteable changes: - The `magic_quotes_runtime` and `magic_quotes_sybase` settings were removed in PHP 5.4, so no longer need to be set. - Some functions that use external libraries can generate errors that can't be tested for, so are globally allowed to silence errors. - Quite a few functions would cause errors if `safe_mode` was set. This setting was removed in PHP 5.4. - Only a handful of `header()` calls needed corresponding `headers_sent()` checks for unit tests to pass, but more may need to be added as the nightlies builds are tested. See #46732. Built from https://develop.svn.wordpress.org/trunk@45611 git-svn-id: http://core.svn.wordpress.org/trunk@45422 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/admin-ajax.php | 4 +- wp-admin/admin-header.php | 2 +- wp-admin/custom-header.php | 2 +- wp-admin/customize.php | 2 +- wp-admin/includes/ajax-actions.php | 2 +- .../includes/class-wp-filesystem-direct.php | 18 ++--- .../includes/class-wp-filesystem-ftpext.php | 30 ++++---- .../class-wp-filesystem-ftpsockets.php | 2 +- .../includes/class-wp-filesystem-ssh2.php | 16 +++- wp-admin/includes/class-wp-upgrader.php | 2 +- wp-admin/includes/file.php | 16 ++-- wp-admin/includes/image.php | 14 ++-- wp-admin/includes/plugin.php | 4 +- wp-admin/includes/template.php | 4 +- wp-admin/includes/update-core.php | 2 +- wp-admin/includes/upgrade.php | 20 ++--- wp-admin/media-upload.php | 2 +- wp-admin/plugins.php | 2 +- wp-admin/update.php | 2 +- wp-admin/upgrade.php | 2 +- wp-includes/class-wp-dependency.php | 2 +- wp-includes/class-wp-http-streams.php | 2 + wp-includes/class-wp-image-editor-gd.php | 2 +- wp-includes/class-wp-image-editor-imagick.php | 3 +- wp-includes/class-wp.php | 24 ++---- wp-includes/comment.php | 6 +- wp-includes/compat.php | 1 + wp-includes/cron.php | 5 +- wp-includes/default-constants.php | 4 +- wp-includes/deprecated.php | 2 +- wp-includes/feed.php | 2 +- wp-includes/formatting.php | 5 +- wp-includes/functions.php | 76 +++++++++---------- wp-includes/http.php | 4 +- wp-includes/load.php | 3 +- wp-includes/media.php | 6 +- wp-includes/pluggable.php | 19 +++-- wp-includes/rest-api/class-wp-rest-server.php | 14 +--- wp-includes/version.php | 2 +- wp-includes/widgets.php | 2 +- wp-includes/widgets/class-wp-widget-rss.php | 2 +- wp-includes/widgets/class-wp-widget-text.php | 1 + wp-includes/wp-db.php | 4 +- wp-settings.php | 8 +- 44 files changed, 177 insertions(+), 170 deletions(-) diff --git a/wp-admin/admin-ajax.php b/wp-admin/admin-ajax.php index 8d412dd9b8..f284387945 100644 --- a/wp-admin/admin-ajax.php +++ b/wp-admin/admin-ajax.php @@ -35,8 +35,8 @@ require_once( ABSPATH . 'wp-admin/includes/admin.php' ); /** Load Ajax Handlers for WordPress Core */ require_once( ABSPATH . 'wp-admin/includes/ajax-actions.php' ); -@header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) ); -@header( 'X-Robots-Tag: noindex' ); +header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) ); +header( 'X-Robots-Tag: noindex' ); send_nosniff_header(); nocache_headers(); diff --git a/wp-admin/admin-header.php b/wp-admin/admin-header.php index 525942ed79..8342c961ac 100644 --- a/wp-admin/admin-header.php +++ b/wp-admin/admin-header.php @@ -6,7 +6,7 @@ * @subpackage Administration */ -@header( 'Content-Type: ' . get_option( 'html_type' ) . '; charset=' . get_option( 'blog_charset' ) ); +header( 'Content-Type: ' . get_option( 'html_type' ) . '; charset=' . get_option( 'blog_charset' ) ); if ( ! defined( 'WP_ADMIN' ) ) { require_once( dirname( __FILE__ ) . '/admin.php' ); } diff --git a/wp-admin/custom-header.php b/wp-admin/custom-header.php index 2cf26600d2..97e7c08e7b 100644 --- a/wp-admin/custom-header.php +++ b/wp-admin/custom-header.php @@ -778,7 +778,7 @@ endif; } if ( file_exists( $file ) ) { - list( $width, $height, $type, $attr ) = getimagesize( $file ); + list( $width, $height, $type, $attr ) = @getimagesize( $file ); } else { $data = wp_get_attachment_metadata( $attachment_id ); $height = isset( $data['height'] ) ? $data['height'] : 0; diff --git a/wp-admin/customize.php b/wp-admin/customize.php index 2486f90145..e742a47f2b 100644 --- a/wp-admin/customize.php +++ b/wp-admin/customize.php @@ -123,7 +123,7 @@ wp_enqueue_style( 'customize-controls' ); do_action( 'customize_controls_enqueue_scripts' ); // Let's roll. -@header( 'Content-Type: ' . get_option( 'html_type' ) . '; charset=' . get_option( 'blog_charset' ) ); +header( 'Content-Type: ' . get_option( 'html_type' ) . '; charset=' . get_option( 'blog_charset' ) ); wp_user_settings(); _wp_admin_html_begin(); diff --git a/wp-admin/includes/ajax-actions.php b/wp-admin/includes/ajax-actions.php index 29cd94c2c8..4b91154c09 100644 --- a/wp-admin/includes/ajax-actions.php +++ b/wp-admin/includes/ajax-actions.php @@ -3251,7 +3251,7 @@ function wp_ajax_get_revision_diffs() { } $return = array(); - @set_time_limit( 0 ); + set_time_limit( 0 ); foreach ( $_REQUEST['compare'] as $compare_key ) { list( $compare_from, $compare_to ) = explode( ':', $compare_key ); // from:to diff --git a/wp-admin/includes/class-wp-filesystem-direct.php b/wp-admin/includes/class-wp-filesystem-direct.php index 9b1757cc65..f282c3b907 100644 --- a/wp-admin/includes/class-wp-filesystem-direct.php +++ b/wp-admin/includes/class-wp-filesystem-direct.php @@ -95,7 +95,7 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base { * @return string|false The current working directory on success, false on failure. */ public function cwd() { - return @getcwd(); + return getcwd(); } /** @@ -126,10 +126,10 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base { return false; } if ( ! $recursive ) { - return @chgrp( $file, $group ); + return chgrp( $file, $group ); } if ( ! $this->is_dir( $file ) ) { - return @chgrp( $file, $group ); + return chgrp( $file, $group ); } // Is a directory, and we want recursive $file = trailingslashit( $file ); @@ -165,7 +165,7 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base { } if ( ! $recursive || ! $this->is_dir( $file ) ) { - return @chmod( $file, $mode ); + return chmod( $file, $mode ); } // Is a directory, and we want recursive $file = trailingslashit( $file ); @@ -193,10 +193,10 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base { return false; } if ( ! $recursive ) { - return @chown( $file, $owner ); + return chown( $file, $owner ); } if ( ! $this->is_dir( $file ) ) { - return @chown( $file, $owner ); + return chown( $file, $owner ); } // Is a directory, and we want recursive $filelist = $this->dirlist( $file ); @@ -476,7 +476,7 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base { if ( $atime == 0 ) { $atime = time(); } - return @touch( $file, $time, $atime ); + return touch( $file, $time, $atime ); } /** @@ -564,11 +564,11 @@ class WP_Filesystem_Direct extends WP_Filesystem_Base { $limit_file = false; } - if ( ! $this->is_dir( $path ) ) { + if ( ! $this->is_dir( $path ) || ! $this->is_readable( $dir ) ) { return false; } - $dir = @dir( $path ); + $dir = dir( $path ); if ( ! $dir ) { return false; } diff --git a/wp-admin/includes/class-wp-filesystem-ftpext.php b/wp-admin/includes/class-wp-filesystem-ftpext.php index c60f80a024..1a936cfd41 100644 --- a/wp-admin/includes/class-wp-filesystem-ftpext.php +++ b/wp-admin/includes/class-wp-filesystem-ftpext.php @@ -114,7 +114,7 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base { } // Set the Connection to use Passive FTP - @ftp_pasv( $this->link, true ); + ftp_pasv( $this->link, true ); if ( @ftp_get_option( $this->link, FTP_TIMEOUT_SEC ) < FS_TIMEOUT ) { @ftp_set_option( $this->link, FTP_TIMEOUT_SEC, FS_TIMEOUT ); } @@ -140,7 +140,7 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base { return false; } - if ( ! @ftp_fget( $this->link, $temp, $file, FTP_BINARY ) ) { + if ( ! ftp_fget( $this->link, $temp, $file, FTP_BINARY ) ) { fclose( $temp ); unlink( $tempfile ); return false; @@ -205,7 +205,7 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base { fseek( $temp, 0 ); // Skip back to the start of the file being written to - $ret = @ftp_fput( $this->link, $file, $temp, FTP_BINARY ); + $ret = ftp_fput( $this->link, $file, $temp, FTP_BINARY ); fclose( $temp ); unlink( $tempfile ); @@ -223,7 +223,7 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base { * @return string|false The current working directory on success, false on failure. */ public function cwd() { - $cwd = @ftp_pwd( $this->link ); + $cwd = ftp_pwd( $this->link ); if ( $cwd ) { $cwd = trailingslashit( $cwd ); } @@ -275,9 +275,9 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base { // chmod the file or directory if ( ! function_exists( 'ftp_chmod' ) ) { - return (bool) @ftp_site( $this->link, sprintf( 'CHMOD %o %s', $mode, $file ) ); + return (bool) ftp_site( $this->link, sprintf( 'CHMOD %o %s', $mode, $file ) ); } - return (bool) @ftp_chmod( $this->link, $mode, $file ); + return (bool) ftp_chmod( $this->link, $mode, $file ); } /** @@ -375,10 +375,10 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base { return false; } if ( 'f' == $type || $this->is_file( $file ) ) { - return @ftp_delete( $this->link, $file ); + return ftp_delete( $this->link, $file ); } if ( ! $recursive ) { - return @ftp_rmdir( $this->link, $file ); + return ftp_rmdir( $this->link, $file ); } $filelist = $this->dirlist( trailingslashit( $file ) ); @@ -387,7 +387,7 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base { $this->delete( trailingslashit( $file ) . $delete_file['name'], $recursive, $delete_file['type'] ); } } - return @ftp_rmdir( $this->link, $file ); + return ftp_rmdir( $this->link, $file ); } /** @@ -399,7 +399,7 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base { * @return bool Whether $file exists or not. */ public function exists( $file ) { - $list = @ftp_nlist( $this->link, $file ); + $list = ftp_nlist( $this->link, $file ); if ( empty( $list ) && $this->is_dir( $file ) ) { return true; // File is an empty directory. @@ -536,7 +536,7 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base { return false; } - if ( ! @ftp_mkdir( $this->link, $path ) ) { + if ( ! ftp_mkdir( $this->link, $path ) ) { return false; } $this->chmod( $path, $chmod ); @@ -587,7 +587,7 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base { $b['year'] = $lucifer[3]; $b['hour'] = $lucifer[4]; $b['minute'] = $lucifer[5]; - $b['time'] = @mktime( $lucifer[4] + ( strcasecmp( $lucifer[6], 'PM' ) == 0 ? 12 : 0 ), $lucifer[5], 0, $lucifer[1], $lucifer[2], $lucifer[3] ); + $b['time'] = mktime( $lucifer[4] + ( strcasecmp( $lucifer[6], 'PM' ) == 0 ? 12 : 0 ), $lucifer[5], 0, $lucifer[1], $lucifer[2], $lucifer[3] ); $b['am/pm'] = $lucifer[6]; $b['name'] = $lucifer[8]; } elseif ( ! $is_windows ) { @@ -617,7 +617,7 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base { if ( $lcount == 8 ) { sscanf( $lucifer[5], '%d-%d-%d', $b['year'], $b['month'], $b['day'] ); sscanf( $lucifer[6], '%d:%d', $b['hour'], $b['minute'] ); - $b['time'] = @mktime( $b['hour'], $b['minute'], 0, $b['month'], $b['day'], $b['year'] ); + $b['time'] = mktime( $b['hour'], $b['minute'], 0, $b['month'], $b['day'], $b['year'] ); $b['name'] = $lucifer[7]; } else { $b['month'] = $lucifer[5]; @@ -678,11 +678,11 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base { $limit_file = false; } - $pwd = @ftp_pwd( $this->link ); + $pwd = ftp_pwd( $this->link ); if ( ! @ftp_chdir( $this->link, $path ) ) { // Can't change to folder = folder doesn't exist. return false; } - $list = @ftp_rawlist( $this->link, '-a', false ); + $list = ftp_rawlist( $this->link, '-a', false ); @ftp_chdir( $this->link, $pwd ); if ( empty( $list ) ) { // Empty array = non-existent folder (real folder will show . at least). diff --git a/wp-admin/includes/class-wp-filesystem-ftpsockets.php b/wp-admin/includes/class-wp-filesystem-ftpsockets.php index 8b392f4946..0482663a65 100644 --- a/wp-admin/includes/class-wp-filesystem-ftpsockets.php +++ b/wp-admin/includes/class-wp-filesystem-ftpsockets.php @@ -33,7 +33,7 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base { $this->errors = new WP_Error(); // Check if possible to use ftp functions. - if ( ! @include_once( ABSPATH . 'wp-admin/includes/class-ftp.php' ) ) { + if ( ! include_once( ABSPATH . 'wp-admin/includes/class-ftp.php' ) ) { return; } $this->ftp = new ftp(); diff --git a/wp-admin/includes/class-wp-filesystem-ssh2.php b/wp-admin/includes/class-wp-filesystem-ssh2.php index 0c12a4cda9..39d830d076 100644 --- a/wp-admin/includes/class-wp-filesystem-ssh2.php +++ b/wp-admin/includes/class-wp-filesystem-ssh2.php @@ -484,7 +484,17 @@ class WP_Filesystem_SSH2 extends WP_Filesystem_Base { * @return bool True on success, false on failure. */ public function move( $source, $destination, $overwrite = false ) { - return @ssh2_sftp_rename( $this->sftp_link, $source, $destination ); + if ( $this->exists( $destination ) ) { + if ( $overwrite ) { + // We need to remove the destination file before we can rename the source. + $this->delete( $destination, false, 'f' ); + } else { + // If we're not overwriting, the rename will fail, so return early. + return false; + } + } + + return ssh2_sftp_rename( $this->sftp_link, $source, $destination ); } /** @@ -711,12 +721,12 @@ class WP_Filesystem_SSH2 extends WP_Filesystem_Base { $limit_file = false; } - if ( ! $this->is_dir( $path ) ) { + if ( ! $this->is_dir( $path ) || ! $this->is_readable( $path ) ) { return false; } $ret = array(); - $dir = @dir( $this->sftp_path( $path ) ); + $dir = dir( $this->sftp_path( $path ) ); if ( ! $dir ) { return false; diff --git a/wp-admin/includes/class-wp-upgrader.php b/wp-admin/includes/class-wp-upgrader.php index b9c77f8ed3..d99c7a2f9d 100644 --- a/wp-admin/includes/class-wp-upgrader.php +++ b/wp-admin/includes/class-wp-upgrader.php @@ -465,7 +465,7 @@ class WP_Upgrader { $destination = $args['destination']; $clear_destination = $args['clear_destination']; - @set_time_limit( 300 ); + set_time_limit( 300 ); if ( empty( $source ) || empty( $destination ) ) { return new WP_Error( 'bad_request', $this->strings['bad_request'] ); diff --git a/wp-admin/includes/file.php b/wp-admin/includes/file.php index 722cdb6657..49f89382c6 100644 --- a/wp-admin/includes/file.php +++ b/wp-admin/includes/file.php @@ -165,8 +165,9 @@ function list_files( $folder = '', $levels = 100, $exclusions = array() ) { $files[] = $folder . $file; } } + + closedir( $dir ); } - @closedir( $dir ); return $files; } @@ -514,7 +515,7 @@ function wp_edit_theme_plugin_file( $args ) { } // Make sure PHP process doesn't die before loopback requests complete. - @set_time_limit( 300 ); + set_time_limit( 300 ); // Time to wait for loopback requests to finish. $timeout = 100; @@ -780,7 +781,7 @@ function _wp_handle_upload( &$file, $overrides, $time, $action ) { } // A properly uploaded file will pass this test. There should be no reason to override this one. - $test_uploaded_file = 'wp_handle_upload' === $action ? @ is_uploaded_file( $file['tmp_name'] ) : @ is_readable( $file['tmp_name'] ); + $test_uploaded_file = 'wp_handle_upload' === $action ? is_uploaded_file( $file['tmp_name'] ) : @is_readable( $file['tmp_name'] ); if ( ! $test_uploaded_file ) { return call_user_func_array( $upload_error_handler, array( &$file, __( 'Specified file failed upload test.' ) ) ); } @@ -848,10 +849,11 @@ function _wp_handle_upload( &$file, $overrides, $time, $action ) { if ( null === $move_new_file ) { if ( 'wp_handle_upload' === $action ) { - $move_new_file = @ move_uploaded_file( $file['tmp_name'], $new_file ); + $move_new_file = @move_uploaded_file( $file['tmp_name'], $new_file ); } else { // use copy and unlink because rename breaks streams. - $move_new_file = @ copy( $file['tmp_name'], $new_file ); + // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged + $move_new_file = @copy( $file['tmp_name'], $new_file ); unlink( $file['tmp_name'] ); } @@ -868,7 +870,7 @@ function _wp_handle_upload( &$file, $overrides, $time, $action ) { // Set correct file permissions. $stat = stat( dirname( $new_file ) ); $perms = $stat['mode'] & 0000666; - @ chmod( $new_file, $perms ); + chmod( $new_file, $perms ); // Compute the URL. $url = $uploads['url'] . "/$filename"; @@ -1854,7 +1856,7 @@ function get_filesystem_method( $args = array(), $context = '', $allow_relaxed_f $GLOBALS['_wp_filesystem_direct_method'] = 'relaxed_ownership'; } - @fclose( $temp_handle ); + fclose( $temp_handle ); @unlink( $temp_file_name ); } } diff --git a/wp-admin/includes/image.php b/wp-admin/includes/image.php index 951f51fc60..374bde41c8 100644 --- a/wp-admin/includes/image.php +++ b/wp-admin/includes/image.php @@ -163,7 +163,7 @@ function wp_update_image_subsizes( $attachment_id ) { function wp_create_image_subsizes( $file, $image_meta, $attachment_id ) { if ( empty( $image_meta ) || ! isset( $image_meta['width'], $image_meta['height'] ) ) { // New uploaded image. - $imagesize = getimagesize( $file ); + $imagesize = @getimagesize( $file ); $image_meta['width'] = $imagesize[0]; $image_meta['height'] = $imagesize[1]; @@ -450,7 +450,11 @@ function wp_generate_attachment_metadata( $attachment_id, $file ) { * @return int|float */ function wp_exif_frac2dec( $str ) { - @list( $n, $d ) = explode( '/', $str ); + if ( false === strpos( $str, '/' ) ) { + return $str; + } + + list( $n, $d ) = explode( '/', $str ); if ( ! empty( $d ) ) { return $n / $d; } @@ -466,8 +470,8 @@ function wp_exif_frac2dec( $str ) { * @return int */ function wp_exif_date2ts( $str ) { - @list( $date, $time ) = explode( ' ', trim( $str ) ); - @list( $y, $m, $d ) = explode( ':', $date ); + list( $date, $time ) = explode( ' ', trim( $str ) ); + list( $y, $m, $d ) = explode( ':', $date ); return strtotime( "{$y}-{$m}-{$d} {$time}" ); } @@ -863,7 +867,7 @@ function _copy_image_file( $attachment_id ) { */ wp_mkdir_p( dirname( $dst_file ) ); - if ( ! @copy( $src_file, $dst_file ) ) { + if ( ! copy( $src_file, $dst_file ) ) { $dst_file = false; } } else { diff --git a/wp-admin/includes/plugin.php b/wp-admin/includes/plugin.php index 3b8e545b7f..a01e104757 100644 --- a/wp-admin/includes/plugin.php +++ b/wp-admin/includes/plugin.php @@ -376,7 +376,7 @@ function get_mu_plugins() { return $wp_plugins; } - @closedir( $plugins_dir ); + closedir( $plugins_dir ); if ( empty( $plugin_files ) ) { return $wp_plugins; @@ -444,7 +444,7 @@ function get_dropins() { return $dropins; } - @closedir( $plugins_dir ); + closedir( $plugins_dir ); if ( empty( $plugin_files ) ) { return $dropins; diff --git a/wp-admin/includes/template.php b/wp-admin/includes/template.php index 36d04147ea..3d4c1aacf5 100644 --- a/wp-admin/includes/template.php +++ b/wp-admin/includes/template.php @@ -1901,7 +1901,7 @@ function iframe_header( $title = '', $deprecated = false ) { $current_screen = get_current_screen(); - @header( 'Content-Type: ' . get_option( 'html_type' ) . '; charset=' . get_option( 'blog_charset' ) ); + header( 'Content-Type: ' . get_option( 'html_type' ) . '; charset=' . get_option( 'blog_charset' ) ); _wp_admin_html_begin(); ?> <?php bloginfo( 'name' ); ?> › <?php echo $title; ?> — <?php _e( 'WordPress' ); ?> @@ -2324,7 +2324,7 @@ function _wp_admin_html_begin() { $admin_html_class = ( is_admin_bar_showing() ) ? 'wp-toolbar' : ''; if ( $is_IE ) { - @header( 'X-UA-Compatible: IE=edge' ); + header( 'X-UA-Compatible: IE=edge' ); } ?> diff --git a/wp-admin/includes/update-core.php b/wp-admin/includes/update-core.php index 5742b48074..57831f2a75 100644 --- a/wp-admin/includes/update-core.php +++ b/wp-admin/includes/update-core.php @@ -881,7 +881,7 @@ $_new_bundled_files = array( function update_core( $from, $to ) { global $wp_filesystem, $_old_files, $_new_bundled_files, $wpdb; - @set_time_limit( 300 ); + set_time_limit( 300 ); /** * Filters feedback messages displayed during the core update process. diff --git a/wp-admin/includes/upgrade.php b/wp-admin/includes/upgrade.php index 01a026a829..9a6847ba59 100644 --- a/wp-admin/includes/upgrade.php +++ b/wp-admin/includes/upgrade.php @@ -608,7 +608,7 @@ https://wordpress.org/ $login_url ); - @wp_mail( $email, __( 'New WordPress Site' ), $message ); + wp_mail( $email, __( 'New WordPress Site' ), $message ); } endif; @@ -2969,7 +2969,7 @@ function make_site_theme_from_oldschool( $theme_name, $template ) { if ( $oldfile == 'index.php' ) { $index = implode( '', file( "$oldpath/$oldfile" ) ); if ( strpos( $index, 'WP_USE_THEMES' ) !== false ) { - if ( ! @copy( WP_CONTENT_DIR . '/themes/' . WP_DEFAULT_THEME . '/index.php', "$site_dir/$newfile" ) ) { + if ( ! copy( WP_CONTENT_DIR . '/themes/' . WP_DEFAULT_THEME . '/index.php', "$site_dir/$newfile" ) ) { return false; } @@ -2978,7 +2978,7 @@ function make_site_theme_from_oldschool( $theme_name, $template ) { } } - if ( ! @copy( "$oldpath/$oldfile", "$site_dir/$newfile" ) ) { + if ( ! copy( "$oldpath/$oldfile", "$site_dir/$newfile" ) ) { return false; } @@ -3039,19 +3039,20 @@ function make_site_theme_from_default( $theme_name, $template ) { // Copy files from the default theme to the site theme. //$files = array('index.php', 'comments.php', 'comments-popup.php', 'footer.php', 'header.php', 'sidebar.php', 'style.css'); - $theme_dir = @ opendir( $default_dir ); + $theme_dir = @opendir( $default_dir ); if ( $theme_dir ) { while ( ( $theme_file = readdir( $theme_dir ) ) !== false ) { if ( is_dir( "$default_dir/$theme_file" ) ) { continue; } - if ( ! @copy( "$default_dir/$theme_file", "$site_dir/$theme_file" ) ) { + if ( ! copy( "$default_dir/$theme_file", "$site_dir/$theme_file" ) ) { return; } chmod( "$site_dir/$theme_file", 0777 ); } + + closedir( $theme_dir ); } - @closedir( $theme_dir ); // Rewrite the theme header. $stylelines = explode( "\n", implode( '', file( "$site_dir/style.css" ) ) ); @@ -3081,19 +3082,20 @@ function make_site_theme_from_default( $theme_name, $template ) { return false; } - $images_dir = @ opendir( "$default_dir/images" ); + $images_dir = @opendir( "$default_dir/images" ); if ( $images_dir ) { while ( ( $image = readdir( $images_dir ) ) !== false ) { if ( is_dir( "$default_dir/images/$image" ) ) { continue; } - if ( ! @copy( "$default_dir/images/$image", "$site_dir/images/$image" ) ) { + if ( ! copy( "$default_dir/images/$image", "$site_dir/images/$image" ) ) { return; } chmod( "$site_dir/images/$image", 0777 ); } + + closedir( $images_dir ); } - @closedir( $images_dir ); } /** diff --git a/wp-admin/media-upload.php b/wp-admin/media-upload.php index 322fcf5a44..2354cf629d 100644 --- a/wp-admin/media-upload.php +++ b/wp-admin/media-upload.php @@ -26,7 +26,7 @@ wp_enqueue_script( 'set-post-thumbnail' ); wp_enqueue_style( 'imgareaselect' ); wp_enqueue_script( 'media-gallery' ); -@header( 'Content-Type: ' . get_option( 'html_type' ) . '; charset=' . get_option( 'blog_charset' ) ); +header( 'Content-Type: ' . get_option( 'html_type' ) . '; charset=' . get_option( 'blog_charset' ) ); // IDs should be integers $ID = isset( $ID ) ? (int) $ID : 0; diff --git a/wp-admin/plugins.php b/wp-admin/plugins.php index 8a59483102..8de8e9d50f 100644 --- a/wp-admin/plugins.php +++ b/wp-admin/plugins.php @@ -170,7 +170,7 @@ if ( $action ) { error_reporting( E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING | E_RECOVERABLE_ERROR ); } - @ini_set( 'display_errors', true ); //Ensure that Fatal errors are displayed. + ini_set( 'display_errors', true ); //Ensure that Fatal errors are displayed. // Go back to "sandbox" scope so we get the same errors as before plugin_sandbox_scrape( $plugin ); /** This action is documented in wp-admin/includes/plugin.php */ diff --git a/wp-admin/update.php b/wp-admin/update.php index 5f465fa827..7257381042 100644 --- a/wp-admin/update.php +++ b/wp-admin/update.php @@ -91,7 +91,7 @@ if ( isset( $_GET['action'] ) ) { echo '

' . __( 'Plugin failed to reactivate due to a fatal error.' ) . '

'; error_reporting( E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING | E_RECOVERABLE_ERROR ); - @ini_set( 'display_errors', true ); //Ensure that Fatal errors are displayed. + ini_set( 'display_errors', true ); //Ensure that Fatal errors are displayed. wp_register_plugin_realpath( WP_PLUGIN_DIR . '/' . $plugin ); include( WP_PLUGIN_DIR . '/' . $plugin ); } diff --git a/wp-admin/upgrade.php b/wp-admin/upgrade.php index 2047c16881..1e7feb8a16 100644 --- a/wp-admin/upgrade.php +++ b/wp-admin/upgrade.php @@ -54,7 +54,7 @@ if ( file_exists( WP_CONTENT_DIR . '/db.php' ) && empty( $wpdb->is_mysql ) ) { $mysql_compat = version_compare( $mysql_version, $required_mysql_version, '>=' ); } -@header( 'Content-Type: ' . get_option( 'html_type' ) . '; charset=' . get_option( 'blog_charset' ) ); +header( 'Content-Type: ' . get_option( 'html_type' ) . '; charset=' . get_option( 'blog_charset' ) ); ?> > diff --git a/wp-includes/class-wp-dependency.php b/wp-includes/class-wp-dependency.php index 6934eb11d9..fc8099d5b9 100644 --- a/wp-includes/class-wp-dependency.php +++ b/wp-includes/class-wp-dependency.php @@ -89,7 +89,7 @@ class _WP_Dependency { * @since 2.6.0 */ public function __construct() { - @list( $this->handle, $this->src, $this->deps, $this->ver, $this->args ) = func_get_args(); + list( $this->handle, $this->src, $this->deps, $this->ver, $this->args ) = func_get_args(); if ( ! is_array( $this->deps ) ) { $this->deps = array(); } diff --git a/wp-includes/class-wp-http-streams.php b/wp-includes/class-wp-http-streams.php index 841fc24a96..ee7ea4d2a7 100644 --- a/wp-includes/class-wp-http-streams.php +++ b/wp-includes/class-wp-http-streams.php @@ -140,8 +140,10 @@ class WP_Http_Streams { } if ( $proxy->is_enabled() && $proxy->send_through_proxy( $url ) ) { + // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged $handle = @stream_socket_client( 'tcp://' . $proxy->host() . ':' . $proxy->port(), $connection_error, $connection_error_str, $connect_timeout, STREAM_CLIENT_CONNECT, $context ); } else { + // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged $handle = @stream_socket_client( $connect_host . ':' . $arrURL['port'], $connection_error, $connection_error_str, $connect_timeout, STREAM_CLIENT_CONNECT, $context ); } diff --git a/wp-includes/class-wp-image-editor-gd.php b/wp-includes/class-wp-image-editor-gd.php index 182e8e1efe..daec6b3d04 100644 --- a/wp-includes/class-wp-image-editor-gd.php +++ b/wp-includes/class-wp-image-editor-gd.php @@ -436,7 +436,7 @@ class WP_Image_Editor_GD extends WP_Image_Editor { // Set correct file permissions $stat = stat( dirname( $filename ) ); $perms = $stat['mode'] & 0000666; //same permissions as parent folder, strip off the executable bits - @ chmod( $filename, $perms ); + chmod( $filename, $perms ); /** * Filters the name of the saved image file. diff --git a/wp-includes/class-wp-image-editor-imagick.php b/wp-includes/class-wp-image-editor-imagick.php index d3ba054b25..1228ca0575 100644 --- a/wp-includes/class-wp-image-editor-imagick.php +++ b/wp-includes/class-wp-image-editor-imagick.php @@ -113,6 +113,7 @@ class WP_Image_Editor_Imagick extends WP_Image_Editor { } try { + // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged return ( (bool) @Imagick::queryFormats( $imagick_extension ) ); } catch ( Exception $e ) { return false; @@ -654,7 +655,7 @@ class WP_Image_Editor_Imagick extends WP_Image_Editor { // Set correct file permissions $stat = stat( dirname( $filename ) ); $perms = $stat['mode'] & 0000666; //same permissions as parent folder, strip off the executable bits - @ chmod( $filename, $perms ); + chmod( $filename, $perms ); /** This filter is documented in wp-includes/class-wp-image-editor-gd.php */ return array( diff --git a/wp-includes/class-wp.php b/wp-includes/class-wp.php index f939e33ac0..ec9565266d 100644 --- a/wp-includes/class-wp.php +++ b/wp-includes/class-wp.php @@ -492,23 +492,15 @@ class WP { if ( isset( $headers['Last-Modified'] ) && false === $headers['Last-Modified'] ) { unset( $headers['Last-Modified'] ); - // In PHP 5.3+, make sure we are not sending a Last-Modified header. - if ( function_exists( 'header_remove' ) ) { - @header_remove( 'Last-Modified' ); - } else { - // In PHP 5.2, send an empty Last-Modified header, but only as a - // last resort to override a header already sent. #WP23021 - foreach ( headers_list() as $header ) { - if ( 0 === stripos( $header, 'Last-Modified' ) ) { - $headers['Last-Modified'] = ''; - break; - } - } + if ( ! headers_sent() ) { + header_remove( 'Last-Modified' ); } } - foreach ( (array) $headers as $name => $field_value ) { - @header( "{$name}: {$field_value}" ); + if ( ! headers_sent() ) { + foreach ( (array) $headers as $name => $field_value ) { + header( "{$name}: {$field_value}" ); + } } if ( $exit_required ) { @@ -674,8 +666,8 @@ class WP { } // Only set X-Pingback for single posts that allow pings. - if ( $p && pings_open( $p ) ) { - @header( 'X-Pingback: ' . get_bloginfo( 'pingback_url', 'display' ) ); + if ( $p && pings_open( $p ) && ! headers_sent() ) { + header( 'X-Pingback: ' . get_bloginfo( 'pingback_url', 'display' ) ); } // check for paged content that exceeds the max number of pages diff --git a/wp-includes/comment.php b/wp-includes/comment.php index ac85eaa247..6cd0eb4610 100644 --- a/wp-includes/comment.php +++ b/wp-includes/comment.php @@ -2608,9 +2608,9 @@ function discover_pingback_server_uri( $url, $deprecated = '' ) { if ( $pingback_link_offset_dquote || $pingback_link_offset_squote ) { $quote = ( $pingback_link_offset_dquote ) ? '"' : '\''; $pingback_link_offset = ( $quote == '"' ) ? $pingback_link_offset_dquote : $pingback_link_offset_squote; - $pingback_href_pos = @strpos( $contents, 'href=', $pingback_link_offset ); + $pingback_href_pos = strpos( $contents, 'href=', $pingback_link_offset ); $pingback_href_start = $pingback_href_pos + 6; - $pingback_href_end = @strpos( $contents, $quote, $pingback_href_start ); + $pingback_href_end = strpos( $contents, $quote, $pingback_href_start ); $pingback_server_url_len = $pingback_href_end - $pingback_href_start; $pingback_server_url = substr( $contents, $pingback_href_start, $pingback_server_url_len ); @@ -2808,7 +2808,7 @@ function pingback( $content, $post_id ) { $pingback_server_url = discover_pingback_server_uri( $pagelinkedto ); if ( $pingback_server_url ) { - @ set_time_limit( 60 ); + set_time_limit( 60 ); // Now, the RPC call $pagelinkedfrom = get_permalink( $post ); diff --git a/wp-includes/compat.php b/wp-includes/compat.php index 827a943980..38d51900c4 100644 --- a/wp-includes/compat.php +++ b/wp-includes/compat.php @@ -35,6 +35,7 @@ function _wp_can_use_pcre_u( $set = null ) { } if ( 'reset' === $utf8_pcre ) { + // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged -- intentional error generated to detect PCRE/u support. $utf8_pcre = @preg_match( '/^./u', 'a' ); } diff --git a/wp-includes/cron.php b/wp-includes/cron.php index bd6138256c..5d26dd8df1 100644 --- a/wp-includes/cron.php +++ b/wp-includes/cron.php @@ -677,11 +677,10 @@ function spawn_cron( $gmt_time = 0 ) { echo ' '; // flush any buffers and send the headers - while ( @ob_end_flush() ) { - } + wp_ob_end_flush_all(); flush(); - WP_DEBUG ? include_once( ABSPATH . 'wp-cron.php' ) : @include_once( ABSPATH . 'wp-cron.php' ); + include_once( ABSPATH . 'wp-cron.php' ); return true; } diff --git a/wp-includes/default-constants.php b/wp-includes/default-constants.php index a004c9e663..6b55025ae6 100644 --- a/wp-includes/default-constants.php +++ b/wp-includes/default-constants.php @@ -34,7 +34,7 @@ function wp_initial_constants() { define( 'WP_START_TIMESTAMP', microtime( true ) ); } - $current_limit = @ini_get( 'memory_limit' ); + $current_limit = ini_get( 'memory_limit' ); $current_limit_int = wp_convert_hr_to_bytes( $current_limit ); // Define memory limits. @@ -61,7 +61,7 @@ function wp_initial_constants() { // Set memory limits. $wp_limit_int = wp_convert_hr_to_bytes( WP_MEMORY_LIMIT ); if ( -1 !== $current_limit_int && ( -1 === $wp_limit_int || $wp_limit_int > $current_limit_int ) ) { - @ini_set( 'memory_limit', WP_MEMORY_LIMIT ); + ini_set( 'memory_limit', WP_MEMORY_LIMIT ); } if ( ! isset( $blog_id ) ) { diff --git a/wp-includes/deprecated.php b/wp-includes/deprecated.php index 55079717a6..677a9b5d44 100644 --- a/wp-includes/deprecated.php +++ b/wp-includes/deprecated.php @@ -1923,7 +1923,7 @@ function get_attachment_icon( $id = 0, $fullsize = false, $max_dims = false ) { // Do we need to constrain the image? if ( ($max_dims = apply_filters('attachment_max_dims', $max_dims)) && file_exists($src_file) ) { - $imagesize = getimagesize($src_file); + $imagesize = @getimagesize($src_file); if (($imagesize[0] > $max_dims[0]) || $imagesize[1] > $max_dims[1] ) { $actual_aspect = $imagesize[0] / $imagesize[1]; diff --git a/wp-includes/feed.php b/wp-includes/feed.php index ecb4a25293..bd0c06fc25 100644 --- a/wp-includes/feed.php +++ b/wp-includes/feed.php @@ -407,7 +407,7 @@ function get_the_category_rss( $type = null ) { } elseif ( 'atom' == $type ) { $the_list .= sprintf( '', esc_attr( get_bloginfo_rss( 'url' ) ), esc_attr( $cat_name ) ); } else { - $the_list .= "\t\t\n"; + $the_list .= "\t\t\n"; } } diff --git a/wp-includes/formatting.php b/wp-includes/formatting.php index 273d9a4c9d..b5240745ac 100644 --- a/wp-includes/formatting.php +++ b/wp-includes/formatting.php @@ -994,7 +994,7 @@ function _wp_specialchars( $string, $quote_style = ENT_NOQUOTES, $charset = fals $string = wp_kses_normalize_entities( $string ); } - $string = @htmlspecialchars( $string, $quote_style, $charset, $double_encode ); + $string = htmlspecialchars( $string, $quote_style, $charset, $double_encode ); // Back-compat. if ( 'single' === $_quote_style ) { @@ -1129,6 +1129,7 @@ function wp_check_invalid_utf8( $string, $strip = false ) { // Check for support for utf8 in the installed PCRE library once and store the result in a static static $utf8_pcre = null; if ( ! isset( $utf8_pcre ) ) { + // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged $utf8_pcre = @preg_match( '/^./u', 'a' ); } // We can't demand utf8 in the PCRE installation, so just return the string in those cases @@ -1136,7 +1137,7 @@ function wp_check_invalid_utf8( $string, $strip = false ) { return $string; } - // preg_match fails when it encounters invalid UTF8 in $string + // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged -- preg_match fails when it encounters invalid UTF8 in $string if ( 1 === @preg_match( '/^./us', $string ) ) { return $string; } diff --git a/wp-includes/functions.php b/wp-includes/functions.php index f5e28d2c68..a66b3fa406 100644 --- a/wp-includes/functions.php +++ b/wp-includes/functions.php @@ -97,7 +97,7 @@ function date_i18n( $dateformatstring, $timestamp_with_offset = false, $gmt = fa global $wp_locale; $i = $timestamp_with_offset; - if ( false === $i ) { + if ( ! is_numeric( $i ) ) { $i = current_time( 'timestamp', $gmt ); } @@ -177,7 +177,7 @@ function date_i18n( $dateformatstring, $timestamp_with_offset = false, $gmt = fa } } } - $j = @gmdate( $dateformatstring, $i ); + $j = gmdate( $dateformatstring, $i ); /** * Filters the date formatted based on the locale. @@ -224,7 +224,7 @@ function wp_maybe_decline_date( $date ) { $months_genitive = $wp_locale->month_genitive; // Match a format like 'j F Y' or 'j. F' - if ( @preg_match( '#^\d{1,2}\.? [^\d ]+#u', $date ) ) { + if ( preg_match( '#^\d{1,2}\.? [^\d ]+#u', $date ) ) { foreach ( $months as $key => $month ) { $months[ $key ] = '# ' . $month . '( |$)#u'; @@ -238,7 +238,7 @@ function wp_maybe_decline_date( $date ) { } // Match a format like 'F jS' or 'F j' and change it to 'j F' - if ( @preg_match( '#^[^\d ]+ \d{1,2}(st|nd|rd|th)? #u', trim( $date ) ) ) { + if ( preg_match( '#^[^\d ]+ \d{1,2}(st|nd|rd|th)? #u', trim( $date ) ) ) { foreach ( $months as $key => $month ) { $months[ $key ] = '#' . $month . ' (\d{1,2})(st|nd|rd|th)?#u'; } @@ -1258,7 +1258,9 @@ function status_header( $code, $description = '' ) { $status_header = apply_filters( 'status_header', $status_header, $code, $description, $protocol ); } - @header( $status_header, true, $code ); + if ( ! headers_sent() ) { + header( $status_header, true, $code ); + } } /** @@ -1310,26 +1312,18 @@ function wp_get_nocache_headers() { * @see wp_get_nocache_headers() */ function nocache_headers() { + if ( headers_sent() ) { + return; + } + $headers = wp_get_nocache_headers(); unset( $headers['Last-Modified'] ); - // In PHP 5.3+, make sure we are not sending a Last-Modified header. - if ( function_exists( 'header_remove' ) ) { - @header_remove( 'Last-Modified' ); - } else { - // In PHP 5.2, send an empty Last-Modified header, but only as a - // last resort to override a header already sent. #WP23021 - foreach ( headers_list() as $header ) { - if ( 0 === stripos( $header, 'Last-Modified' ) ) { - $headers['Last-Modified'] = ''; - break; - } - } - } + header_remove( 'Last-Modified' ); foreach ( $headers as $name => $field_value ) { - @header( "{$name}: {$field_value}" ); + header( "{$name}: {$field_value}" ); } } @@ -1829,7 +1823,7 @@ function wp_mkdir_p( $target ) { if ( $dir_perms != ( $dir_perms & ~umask() ) ) { $folder_parts = explode( '/', substr( $target, strlen( $target_parent ) + 1 ) ); for ( $i = 1, $c = count( $folder_parts ); $i <= $c; $i++ ) { - @chmod( $target_parent . '/' . implode( '/', array_slice( $folder_parts, 0, $i ) ), $dir_perms ); + chmod( $target_parent . '/' . implode( '/', array_slice( $folder_parts, 0, $i ) ), $dir_perms ); } } @@ -2421,12 +2415,12 @@ function wp_upload_bits( $name, $deprecated, $bits, $time = null ) { return array( 'error' => $message ); } - $ifp = @ fopen( $new_file, 'wb' ); + $ifp = @fopen( $new_file, 'wb' ); if ( ! $ifp ) { return array( 'error' => sprintf( __( 'Could not write file %s' ), $new_file ) ); } - @fwrite( $ifp, $bits ); + fwrite( $ifp, $bits ); fclose( $ifp ); clearstatcache(); @@ -2434,7 +2428,7 @@ function wp_upload_bits( $name, $deprecated, $bits, $time = null ) { $stat = @ stat( dirname( $new_file ) ); $perms = $stat['mode'] & 0007777; $perms = $perms & 0000666; - @ chmod( $new_file, $perms ); + chmod( $new_file, $perms ); clearstatcache(); // Compute the URL @@ -2707,7 +2701,7 @@ function wp_get_image_mime( $file ) { $imagetype = exif_imagetype( $file ); $mime = ( $imagetype ) ? image_type_to_mime_type( $imagetype ) : false; } elseif ( function_exists( 'getimagesize' ) ) { - $imagesize = getimagesize( $file ); + $imagesize = @getimagesize( $file ); $mime = ( isset( $imagesize['mime'] ) ) ? $imagesize['mime'] : false; } else { $mime = false; @@ -3601,6 +3595,7 @@ function wp_json_encode( $data, $options = 0, $depth = 512 ) { // Prepare the data for JSON serialization. $args[0] = _wp_json_prepare_data( $data ); + // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged -- json_encode() errors are handled after this call $json = @call_user_func_array( 'json_encode', $args ); // If json_encode() was successful, no need to do more sanity checking. @@ -3775,10 +3770,13 @@ function _wp_json_prepare_data( $data ) { * @param int $status_code The HTTP status code to output. */ function wp_send_json( $response, $status_code = null ) { - @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) ); - if ( null !== $status_code ) { - status_header( $status_code ); + if ( ! headers_sent() ) { + header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) ); + if ( null !== $status_code ) { + status_header( $status_code ); + } } + echo wp_json_encode( $response ); if ( wp_doing_ajax() ) { @@ -5726,7 +5724,7 @@ function __return_empty_string() { // phpcs:ignore WordPress.NamingConventions.V * @see https://src.chromium.org/viewvc/chrome?view=rev&revision=6985 */ function send_nosniff_header() { - @header( 'X-Content-Type-Options: nosniff' ); + header( 'X-Content-Type-Options: nosniff' ); } /** @@ -5840,7 +5838,7 @@ function wp_find_hierarchy_loop_tortoise_hare( $callback, $start, $override = ar * @see https://developer.mozilla.org/en/the_x-frame-options_response_header */ function send_frame_options_header() { - @header( 'X-Frame-Options: SAMEORIGIN' ); + header( 'X-Frame-Options: SAMEORIGIN' ); } /** @@ -6414,7 +6412,7 @@ function wp_raise_memory_limit( $context = 'admin' ) { return false; } - $current_limit = @ini_get( 'memory_limit' ); + $current_limit = ini_get( 'memory_limit' ); $current_limit_int = wp_convert_hr_to_bytes( $current_limit ); if ( -1 === $current_limit_int ) { @@ -6486,13 +6484,13 @@ function wp_raise_memory_limit( $context = 'admin' ) { $filtered_limit_int = wp_convert_hr_to_bytes( $filtered_limit ); if ( -1 === $filtered_limit_int || ( $filtered_limit_int > $wp_max_limit_int && $filtered_limit_int > $current_limit_int ) ) { - if ( false !== @ini_set( 'memory_limit', $filtered_limit ) ) { + if ( false !== ini_set( 'memory_limit', $filtered_limit ) ) { return $filtered_limit; } else { return false; } } elseif ( -1 === $wp_max_limit_int || $wp_max_limit_int > $current_limit_int ) { - if ( false !== @ini_set( 'memory_limit', $wp_max_limit ) ) { + if ( false !== ini_set( 'memory_limit', $wp_max_limit ) ) { return $wp_max_limit; } else { return false; @@ -7179,13 +7177,13 @@ function recurse_dirsize( $directory, $exclude = null, $max_execution_time = nul } /** -* Checks compatibility with the current WordPress version. -* -* @since 5.2.0 -* -* @param string $required Minimum required WordPress version. -* @return bool True if required version is compatible or empty, false if not. -*/ + * Checks compatibility with the current WordPress version. + * + * @since 5.2.0 + * + * @param string $required Minimum required WordPress version. + * @return bool True if required version is compatible or empty, false if not. + */ function is_wp_version_compatible( $required ) { return empty( $required ) || version_compare( get_bloginfo( 'version' ), $required, '>=' ); } diff --git a/wp-includes/http.php b/wp-includes/http.php index 2b153aa136..7b82b5e7ae 100644 --- a/wp-includes/http.php +++ b/wp-includes/http.php @@ -496,8 +496,8 @@ function send_origin_headers() { $origin = get_http_origin(); if ( is_allowed_http_origin( $origin ) ) { - @header( 'Access-Control-Allow-Origin: ' . $origin ); - @header( 'Access-Control-Allow-Credentials: true' ); + header( 'Access-Control-Allow-Origin: ' . $origin ); + header( 'Access-Control-Allow-Credentials: true' ); if ( 'OPTIONS' === $_SERVER['REQUEST_METHOD'] ) { exit; } diff --git a/wp-includes/load.php b/wp-includes/load.php index 13f4db5594..7e5314c0d2 100644 --- a/wp-includes/load.php +++ b/wp-includes/load.php @@ -352,7 +352,7 @@ function wp_debug_mode() { } if ( defined( 'XMLRPC_REQUEST' ) || defined( 'REST_REQUEST' ) || ( defined( 'WP_INSTALLING' ) && WP_INSTALLING ) || wp_doing_ajax() || wp_is_json_request() ) { - @ini_set( 'display_errors', 0 ); + ini_set( 'display_errors', 0 ); } } @@ -908,6 +908,7 @@ function is_protected_ajax_action() { function wp_set_internal_encoding() { if ( function_exists( 'mb_internal_encoding' ) ) { $charset = get_option( 'blog_charset' ); + // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged if ( ! $charset || ! @mb_internal_encoding( $charset ) ) { mb_internal_encoding( 'UTF-8' ); } diff --git a/wp-includes/media.php b/wp-includes/media.php index 30fadcbeb4..1cf3d3ff0b 100644 --- a/wp-includes/media.php +++ b/wp-includes/media.php @@ -238,7 +238,7 @@ function image_downsize( $id, $size = 'medium' ) { $info = null; if ( $thumb_file ) { - $info = getimagesize( $thumb_file ); + $info = @getimagesize( $thumb_file ); } if ( $thumb_file && $info ) { @@ -910,8 +910,8 @@ function wp_get_attachment_image_src( $attachment_id, $size = 'thumbnail', $icon /** This filter is documented in wp-includes/post.php */ $icon_dir = apply_filters( 'icon_dir', ABSPATH . WPINC . '/images/media' ); - $src_file = $icon_dir . '/' . wp_basename( $src ); - @list( $width, $height ) = getimagesize( $src_file ); + $src_file = $icon_dir . '/' . wp_basename( $src ); + list( $width, $height ) = @getimagesize( $src_file ); } } diff --git a/wp-includes/pluggable.php b/wp-includes/pluggable.php index 1e593d80a4..b398e5fe54 100644 --- a/wp-includes/pluggable.php +++ b/wp-includes/pluggable.php @@ -1522,7 +1522,10 @@ if ( ! function_exists( 'wp_notify_postauthor' ) ) : $switched_locale = switch_to_locale( get_locale() ); - $comment_author_domain = @gethostbyaddr( $comment->comment_author_IP ); + $comment_author_domain = ''; + if ( WP_Http::is_ip_address( $comment->comment_author_IP ) ) { + $comment_author_domain = gethostbyaddr( $comment->comment_author_IP ); + } // The blogname option is escaped with esc_html on the way into the database in sanitize_option // we want to reverse this for the plain text arena of emails. @@ -1639,7 +1642,7 @@ if ( ! function_exists( 'wp_notify_postauthor' ) ) : $message_headers = apply_filters( 'comment_notification_headers', $message_headers, $comment->comment_ID ); foreach ( $emails as $email ) { - @wp_mail( $email, wp_specialchars_decode( $subject ), $notify_message, $message_headers ); + wp_mail( $email, wp_specialchars_decode( $subject ), $notify_message, $message_headers ); } if ( $switched_locale ) { @@ -1696,8 +1699,12 @@ if ( ! function_exists( 'wp_notify_moderator' ) ) : $switched_locale = switch_to_locale( get_locale() ); - $comment_author_domain = @gethostbyaddr( $comment->comment_author_IP ); - $comments_waiting = $wpdb->get_var( "SELECT count(comment_ID) FROM $wpdb->comments WHERE comment_approved = '0'" ); + $comment_author_domain = ''; + if ( WP_Http::is_ip_address( $comment->comment_author_IP ) ) { + $comment_author_domain = gethostbyaddr( $comment->comment_author_IP ); + } + + $comments_waiting = $wpdb->get_var( "SELECT count(comment_ID) FROM $wpdb->comments WHERE comment_approved = '0'" ); // The blogname option is escaped with esc_html on the way into the database in sanitize_option // we want to reverse this for the plain text arena of emails. @@ -1810,7 +1817,7 @@ if ( ! function_exists( 'wp_notify_moderator' ) ) : $message_headers = apply_filters( 'comment_moderation_headers', $message_headers, $comment_id ); foreach ( $emails as $email ) { - @wp_mail( $email, wp_specialchars_decode( $subject ), $notify_message, $message_headers ); + wp_mail( $email, wp_specialchars_decode( $subject ), $notify_message, $message_headers ); } if ( $switched_locale ) { @@ -1947,7 +1954,7 @@ if ( ! function_exists( 'wp_new_user_notification' ) ) : */ $wp_new_user_notification_email_admin = apply_filters( 'wp_new_user_notification_email_admin', $wp_new_user_notification_email_admin, $user, $blogname ); - @wp_mail( + wp_mail( $wp_new_user_notification_email_admin['to'], wp_specialchars_decode( sprintf( $wp_new_user_notification_email_admin['subject'], $blogname ) ), $wp_new_user_notification_email_admin['message'], diff --git a/wp-includes/rest-api/class-wp-rest-server.php b/wp-includes/rest-api/class-wp-rest-server.php index 252daf3e99..f34a6106e3 100644 --- a/wp-includes/rest-api/class-wp-rest-server.php +++ b/wp-includes/rest-api/class-wp-rest-server.php @@ -1279,19 +1279,7 @@ class WP_REST_Server { * @param string $key Header key. */ public function remove_header( $key ) { - if ( function_exists( 'header_remove' ) ) { - // In PHP 5.3+ there is a way to remove an already set header. - header_remove( $key ); - } else { - // In PHP 5.2, send an empty header, but only as a last resort to - // override a header already sent. - foreach ( headers_list() as $header ) { - if ( 0 === stripos( $header, "$key:" ) ) { - $this->send_header( $key, '' ); - break; - } - } - } + header_remove( $key ); } /** diff --git a/wp-includes/version.php b/wp-includes/version.php index 1b44488182..af16e0ab2e 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -13,7 +13,7 @@ * * @global string $wp_version */ -$wp_version = '5.3-alpha-45610'; +$wp_version = '5.3-alpha-45611'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. diff --git a/wp-includes/widgets.php b/wp-includes/widgets.php index 5fb6859ac0..28c79d1764 100644 --- a/wp-includes/widgets.php +++ b/wp-includes/widgets.php @@ -1493,7 +1493,7 @@ function wp_widget_rss_output( $rss, $args = array() ) { $title = __( 'Untitled' ); } - $desc = @html_entity_decode( $item->get_description(), ENT_QUOTES, get_option( 'blog_charset' ) ); + $desc = html_entity_decode( $item->get_description(), ENT_QUOTES, get_option( 'blog_charset' ) ); $desc = esc_attr( wp_trim_words( $desc, 55, ' […]' ) ); $summary = ''; diff --git a/wp-includes/widgets/class-wp-widget-rss.php b/wp-includes/widgets/class-wp-widget-rss.php index 3b9862c14d..570e7bba43 100644 --- a/wp-includes/widgets/class-wp-widget-rss.php +++ b/wp-includes/widgets/class-wp-widget-rss.php @@ -67,7 +67,7 @@ class WP_Widget_RSS extends WP_Widget { $link = ''; if ( ! is_wp_error( $rss ) ) { - $desc = esc_attr( strip_tags( @html_entity_decode( $rss->get_description(), ENT_QUOTES, get_option( 'blog_charset' ) ) ) ); + $desc = esc_attr( strip_tags( html_entity_decode( $rss->get_description(), ENT_QUOTES, get_option( 'blog_charset' ) ) ) ); if ( empty( $title ) ) { $title = strip_tags( $rss->get_title() ); } diff --git a/wp-includes/widgets/class-wp-widget-text.php b/wp-includes/widgets/class-wp-widget-text.php index ce424b49bb..c70c2581ae 100644 --- a/wp-includes/widgets/class-wp-widget-text.php +++ b/wp-includes/widgets/class-wp-widget-text.php @@ -123,6 +123,7 @@ class WP_Widget_Text extends WP_Widget { // Suppress warnings generated by loadHTML $errors = libxml_use_internal_errors( true ); + // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged @$doc->loadHTML( sprintf( '%s', diff --git a/wp-includes/wp-db.php b/wp-includes/wp-db.php index f1fd1c297f..3c41943e55 100644 --- a/wp-includes/wp-db.php +++ b/wp-includes/wp-db.php @@ -1376,7 +1376,7 @@ class wpdb { } array_walk( $args, array( $this, 'escape_by_ref' ) ); - $query = @vsprintf( $query, $args ); + $query = vsprintf( $query, $args ); return $this->add_placeholder_escape( $query ); } @@ -1614,6 +1614,7 @@ class wpdb { if ( WP_DEBUG ) { mysqli_real_connect( $this->dbh, $host, $this->dbuser, $this->dbpassword, null, $port, $socket, $client_flags ); } else { + // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged @mysqli_real_connect( $this->dbh, $host, $this->dbuser, $this->dbpassword, null, $port, $socket, $client_flags ); } @@ -1645,6 +1646,7 @@ class wpdb { if ( WP_DEBUG ) { $this->dbh = mysql_connect( $this->dbhost, $this->dbuser, $this->dbpassword, $new_link, $client_flags ); } else { + // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged $this->dbh = @mysql_connect( $this->dbhost, $this->dbuser, $this->dbpassword, $new_link, $client_flags ); } } diff --git a/wp-settings.php b/wp-settings.php index bac9b07a05..73611fe11a 100644 --- a/wp-settings.php +++ b/wp-settings.php @@ -54,10 +54,6 @@ wp_register_fatal_error_handler(); // Check for the required PHP version and for the MySQL extension or a database drop-in. wp_check_php_mysql_versions(); -// Disable magic quotes at runtime. Magic quotes are added using wpdb later in wp-settings.php. -@ini_set( 'magic_quotes_runtime', 0 ); -@ini_set( 'magic_quotes_sybase', 0 ); - // WordPress calculates offsets from UTC. date_default_timezone_set( 'UTC' ); @@ -90,9 +86,9 @@ wp_debug_mode(); * @param bool $enable_advanced_cache Whether to enable loading advanced-cache.php (if present). * Default true. */ -if ( WP_CACHE && apply_filters( 'enable_loading_advanced_cache_dropin', true ) ) { +if ( WP_CACHE && apply_filters( 'enable_loading_advanced_cache_dropin', true ) && file_exists( WP_CONTENT_DIR . '/advanced-cache.php' ) ) { // For an advanced caching plugin to use. Uses a static drop-in because you would only want one. - WP_DEBUG ? include( WP_CONTENT_DIR . '/advanced-cache.php' ) : @include( WP_CONTENT_DIR . '/advanced-cache.php' ); + include( WP_CONTENT_DIR . '/advanced-cache.php' ); // Re-initialize any hooks added manually by advanced-cache.php if ( $wp_filter ) {