Make WordPress Core

Changeset 47645

Timestamp:
04/29/2020 04:05:32 PM (4 years ago)
Author:
whyisjake
Message:

Customize: Add additional filters to Customizer to prevent JSON corruption.
User: Invalidate user_activation_key on password update.
Query: Ensure that only a single post can be returned on date/time based queries.
Block Editor: Coding standards, properly escape class names.
Cache API: Ensure proper escaping around the stats method in the cache API.
Formatting: Expand sanitize_file_name to have better support for utf8 characters.

Brings the changes in [47633], [47634], [47635], [47636], [47637], and [47638] to the 5.2 branch.

Props: aduth, batmoo, ehti, ellatrix, jorgefilipecosta, nickdaugherty, noisysocks, pento, peterwilsoncc, sergeybiryukov, sstoqnov, talldanwp, westi, westonruter, whyisjake, whyisjake, xknown.

Location:
branches/5.2
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • branches/5.2

  • branches/5.2/src/wp-includes/blocks/rss.php

    r44810 r47645  
    8181
    8282    $classes           = 'grid' === $attributes['blockLayout'] ? ' is-grid columns-' . $attributes['columns'] : '';
    83     $list_items_markup = "<ul class='wp-block-rss{$classes}'>{$list_items}</ul>";
     83    $list_items_markup = ;
    8484
    8585    // PHP 5.2 compatibility. See: http://simplepie.org/wiki/faq/i_m_getting_memory_leaks.
     
    9494 */
    9595function register_block_core_rss() {
    96     register_block_type( 'core/rss',
     96    register_block_type(
     97        'core/rss',
    9798        array(
    9899            'attributes'      => array(
  • branches/5.2/src/wp-includes/blocks/search.php

    r44810 r47645  
    4747    return sprintf(
    4848        '<form class="%s" role="search" method="get" action="%s">%s</form>',
    49         $class,
     49        ,
    5050        esc_url( home_url( '/' ) ),
    5151        $label_markup . $input_markup . $button_markup
  • branches/5.2/src/wp-includes/cache.php

    r45161 r47645  
    696696        echo '<ul>';
    697697        foreach ( $this->cache as $group => $cache ) {
    698             echo "<li><strong>Group:</strong> $group - ( " . number_format( strlen( serialize( $cache ) ) / KB_IN_BYTES, 2 ) . 'k )</li>';
     698            echo . number_format( strlen( serialize( $cache ) ) / KB_IN_BYTES, 2 ) . 'k )</li>';
    699699        }
    700700        echo '</ul>';
  • branches/5.2/src/wp-includes/class-wp-customize-manager.php

    r45232 r47645  
    28872887
    28882888        /*
    2889          * Update the changeset post. The publish_customize_changeset action
    2890          * will cause the settings in the changeset to be saved via
    2891          * WP_Customize_Setting::save().
     2889         * Update the changeset post. The publish_customize_changeset action
     2890         *
     2891         * ().
    28922892         */
    2893 
    2894         // Prevent content filters from corrupting JSON in post_content.
    2895         $has_kses = ( false !== has_filter( 'content_save_pre', 'wp_filter_post_kses' ) );
    2896         if ( $has_kses ) {
    2897             kses_remove_filters();
    2898         }
    2899         $has_targeted_link_rel_filters = ( false !== has_filter( 'content_save_pre', 'wp_targeted_link_rel' ) );
    2900         if ( $has_targeted_link_rel_filters ) {
    2901             wp_remove_targeted_link_rel_filters();
    2902         }
    2903 
    2904         // Note that updating a post with publish status will trigger WP_Customize_Manager::publish_changeset_values().
     2893        add_filter( 'wp_insert_post_data', array( $this, 'preserve_insert_changeset_post_content' ), 5, 3 );
    29052894        if ( $changeset_post_id ) {
    29062895            if ( $args['autosave'] && 'auto-draft' !== get_post_status( $changeset_post_id ) ) {
     
    29292918            }
    29302919        }
    2931 
    2932         // Restore removed content filters.
    2933         if ( $has_kses ) {
    2934             kses_init_filters();
    2935         }
    2936         if ( $has_targeted_link_rel_filters ) {
    2937             wp_init_targeted_link_rel_filters();
    2938         }
     2920        remove_filter( 'wp_insert_post_data', array( $this, 'preserve_insert_changeset_post_content' ), 5 );
    29392921
    29402922        $this->_changeset_data = null; // Reset so WP_Customize_Manager::changeset_data() will re-populate with updated contents.
     
    29522934
    29532935        return $response;
     2936
     2937
     2938
     2939
     2940
     2941
     2942
     2943
     2944
     2945
     2946
     2947
     2948
     2949
     2950
     2951
     2952
     2953
     2954
     2955
     2956
     2957
     2958
     2959
     2960
     2961
     2962
     2963
     2964
     2965
     2966
     2967
     2968
     2969
     2970
     2971
     2972
     2973
     2974
     2975
     2976
     2977
     2978
     2979
     2980
    29542981    }
    29552982
  • branches/5.2/src/wp-includes/class-wp-query.php

    r46479 r47645  
    798798        } elseif ( $qv['p'] ) {
    799799            $this->is_single = true;
    800         } elseif ( ( '' !== $qv['hour'] ) && ( '' !== $qv['minute'] ) && ( '' !== $qv['second'] ) && ( '' != $qv['year'] ) && ( '' != $qv['monthnum'] ) && ( '' != $qv['day'] ) ) {
    801             // If year, month, day, hour, minute, and second are set, a single
    802             // post is being queried.
    803             $this->is_single = true;
    804800        } elseif ( '' != $qv['pagename'] || ! empty( $qv['page_id'] ) ) {
    805801            $this->is_page   = true;
  • branches/5.2/src/wp-includes/formatting.php

    r46901 r47645  
    19991999    $filename_raw  = $filename;
    20002000    $special_chars = array( '?', '[', ']', '/', '\\', '=', '<', '>', ':', ';', ',', "'", '"', '&', '$', '#', '*', '(', ')', '|', '~', '`', '!', '{', '}', '%', '+', chr( 0 ) );
     2001
     2002
     2003
     2004
     2005
     2006
     2007
     2008
     2009
     2010
     2011
     2012
     2013
     2014
     2015
     2016
     2017
     2018
    20012019    /**
    20022020     * Filters the list of characters to remove from a filename.
     
    20082026     */
    20092027    $special_chars = apply_filters( 'sanitize_file_name_chars', $special_chars, $filename_raw );
    2010     $filename      = preg_replace( "#\x{00a0}#siu", ' ', $filename );
    20112028    $filename      = str_replace( $special_chars, '', $filename );
    20122029    $filename      = str_replace( array( '%20', '+' ), '-', $filename );
  • branches/5.2/src/wp-includes/post.php

    r45219 r47645  
    33863386    global $wpdb;
    33873387
     3388
     3389
     3390
    33883391    $user_id = get_current_user_id();
    33893392
     
    36973700         *
    36983701         * @since 3.9.0
     3702
    36993703         *
    3700          * @param array $data    An array of sanitized attachment post data.
    3701          * @param array $postarr An array of unsanitized attachment post data.
     3704         * @param array $data                An array of slashed, sanitized, and processed attachment post data.
     3705         * @param array $postarr             An array of slashed and sanitized attachment post data, but not processed.
     3706         * @param array $unsanitized_postarr An array of slashed yet *unsanitized* and unprocessed attachment post data
     3707         *                                   as originally passed to wp_insert_post().
    37023708         */
    3703         $data = apply_filters( 'wp_insert_attachment_data', $data, $postarr );
     3709        $data = apply_filters( 'wp_insert_attachment_data', $data, $postarr );
    37043710    } else {
    37053711        /**
     
    37073713         *
    37083714         * @since 2.7.0
     3715
    37093716         *
    3710          * @param array $data    An array of slashed post data.
    3711          * @param array $postarr An array of sanitized, but otherwise unmodified post data.
     3717         * @param array $data                An array of slashed, sanitized, and processed post data.
     3718         * @param array $postarr             An array of sanitized (and slashed) but otherwise unmodified post data.
     3719         * @param array $unsanitized_postarr An array of slashed yet *unsanitized* and unprocessed post data as
     3720         *                                   originally passed to wp_insert_post().
    37123721         */
    3713         $data = apply_filters( 'wp_insert_post_data', $data, $postarr );
     3722        $data = apply_filters( 'wp_insert_post_data', $data, $postarr );
    37143723    }
    37153724    $data  = wp_unslash( $data );
  • branches/5.2/src/wp-includes/user.php

    r45204 r47645  
    17741774
    17751775    if ( $update ) {
    1776         if ( $user_email !== $old_user_data->user_email ) {
     1776        if ( $user_email !== $old_user_data->user_email ) {
    17771777            $data['user_activation_key'] = '';
    17781778        }
  • branches/5.2/tests/phpunit/tests/customize/manager.php

    r44582 r47645  
    11621162
    11631163    /**
     1164
     1165
     1166
     1167
     1168
     1169
     1170
     1171
     1172
     1173
     1174
     1175
     1176
     1177
     1178
     1179
     1180
     1181
     1182
     1183
     1184
     1185
     1186
     1187
     1188
     1189
     1190
     1191
     1192
     1193
     1194
     1195
     1196
     1197
     1198
     1199
     1200
     1201
     1202
     1203
     1204
     1205
     1206
     1207
     1208
     1209
     1210
     1211
     1212
     1213
     1214
     1215
     1216
     1217
     1218
     1219
     1220
     1221
     1222
     1223
     1224
     1225
     1226
     1227
     1228
     1229
     1230
     1231
     1232
     1233
     1234
     1235
     1236
     1237
     1238
     1239
     1240
     1241
     1242
     1243
     1244
     1245
     1246
     1247
     1248
     1249
     1250
     1251
     1252
     1253
     1254
     1255
     1256
     1257
     1258
     1259
     1260
     1261
     1262
     1263
     1264
     1265
     1266
     1267
     1268
     1269
     1270
     1271
     1272
     1273
     1274
     1275
     1276
     1277
     1278
     1279
     1280
     1281
     1282
     1283
     1284
     1285
     1286
     1287
     1288
     1289
     1290
     1291
     1292
     1293
     1294
     1295
     1296
     1297
     1298
     1299
     1300
     1301
     1302
     1303
     1304
     1305
     1306
     1307
     1308
     1309
     1310
     1311
     1312
     1313
     1314
     1315
     1316
     1317
     1318
     1319
     1320
     1321
     1322
     1323
     1324
     1325
     1326
     1327
     1328
    11641329     * Call count for customize_changeset_save_data filter.
    11651330     *
  • branches/5.2/tests/phpunit/tests/formatting/SanitizeFileName.php

    r42343 r47645  
    6969        $this->assertEquals( 'no-extension', sanitize_file_name( '_.no-extension' ) );
    7070    }
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
    7187}
  • branches/5.2/tests/phpunit/tests/user.php

    r44645 r47645  
    978978    }
    979979
    980     function test_changing_email_invalidates_password_reset_key() {
     980    function test_changing_email_invalidates_password_reset_key() {
    981981        global $wpdb;
    982982
     
    10031003            'user_nicename' => 'cat',
    10041004            'user_email'    => 'foo@bar.dev',
     1005
     1006
     1007
     1008
     1009
     1010
     1011
     1012
     1013
     1014
     1015
     1016
     1017
     1018
     1019
     1020
     1021
     1022
     1023
     1024
    10051025        );
    10061026        wp_update_user( $userdata );
Note: See TracChangeset for help on using the changeset viewer.