From 1080a903fca9c02b367cc063d22d50b71c2482b3 Mon Sep 17 00:00:00 2001 From: Andrew Ozz Date: Fri, 6 Mar 2015 02:02:03 +0000 Subject: [PATCH] PressThis: when server-side parsing, filter small images by the width and height attributes if set. See #31373. git-svn-id: https://develop.svn.wordpress.org/trunk@31637 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-admin/includes/class-wp-press-this.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/wp-admin/includes/class-wp-press-this.php b/src/wp-admin/includes/class-wp-press-this.php index be62992319..3084ce3a7c 100644 --- a/src/wp-admin/includes/class-wp-press-this.php +++ b/src/wp-admin/includes/class-wp-press-this.php @@ -285,10 +285,12 @@ class WP_Press_This { // Get the content of the source page from the tmp file.. $source_content = wp_kses( - file_get_contents( $source_tmp_file ), + @file_get_contents( $source_tmp_file ), array( 'img' => array( 'src' => array(), + 'width' => array(), + 'height' => array(), ), 'iframe' => array( 'src' => array(), @@ -529,7 +531,13 @@ class WP_Press_This { $items = $this->_limit_array( $matches[0] ); foreach ( $items as $value ) { - if ( preg_match( '/src=(\'|")([^\'"]+)\\1/', $value, $new_matches ) ) { + if ( ( preg_match( '/width=(\'|")(\d+)\\1/i', $value, $new_matches ) && $new_matches[2] < 256 ) || + ( preg_match( '/height=(\'|")(\d+)\\1/i', $value, $new_matches ) && $new_matches[2] < 128 ) ) { + + continue; + } + + if ( preg_match( '/src=(\'|")([^\'"]+)\\1/i', $value, $new_matches ) ) { $src = $this->_limit_img( $new_matches[2] ); if ( ! empty( $src ) && ! in_array( $src, $data['_img'] ) ) { $data['_img'][] = $src;