WordPress.org

Make WordPress Core

Ticket #41593: 41593.diff

File 41593.diff, 119.2 KB (added by jdgrimes, 2 years ago)

Catch-all patch; probably needs to be split

  • src/wp-admin/custom-background.php

     
    470470                );
    471471
    472472                // Save the data
    473                 $id = wp_insert_attachment($object, $file);
     473                $id = wp_insert_attachment( wp_slash( $object ), $file );
    474474
    475475                // Add the meta-data
    476                 wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) );
    477                 update_post_meta( $id, '_wp_attachment_is_custom_background', get_option('stylesheet' ) );
     476                wp_update_attachment_metadata( $id, wp_slash( wp_generate_attachment_metadata( $id, $file ) ) );
     477                update_post_meta( $id, '_wp_attachment_is_custom_background', wp_slash( get_option( 'stylesheet' ) ) );
    478478
    479479                set_theme_mod('background_image', esc_url_raw($url));
    480480
     
    506506                        wp_send_json_error();
    507507                }
    508508
    509                 update_post_meta( $attachment_id, '_wp_attachment_is_custom_background', get_stylesheet() );
     509                update_post_meta( $attachment_id, '_wp_attachment_is_custom_background', wp_slash( get_stylesheet() ) );
    510510
    511511                wp_send_json_success();
    512512        }
     
    549549                if ( in_array( $_POST['size'], $sizes ) )
    550550                        $size = esc_attr( $_POST['size'] );
    551551
    552                 update_post_meta( $attachment_id, '_wp_attachment_is_custom_background', get_option('stylesheet' ) );
     552                update_post_meta( $attachment_id, '_wp_attachment_is_custom_background', wp_slash( get_option( 'stylesheet' ) ) );
    553553                $url = wp_get_attachment_image_src( $attachment_id, $size );
    554554                $thumbnail = wp_get_attachment_image_src( $attachment_id, 'thumbnail' );
    555555                set_theme_mod( 'background_image', esc_url_raw( $url[0] ) );
  • src/wp-admin/custom-header.php

     
    761761                {
    762762                        // Add the meta-data
    763763                        if ( file_exists( $file ) )
    764                                 wp_update_attachment_metadata( $attachment_id, wp_generate_attachment_metadata( $attachment_id, $file ) );
     764                                wp_update_attachment_metadata( $attachment_id, wp_slash( wp_generate_attachment_metadata( $attachment_id, $file ) ) );
    765765
    766766                        $this->set_header_image( compact( 'url', 'attachment_id', 'width', 'height' ) );
    767767
     
    861861                );
    862862
    863863                // Save the data
    864                 $attachment_id = wp_insert_attachment( $object, $file );
     864                $attachment_id = wp_insert_attachment( wp_slash( $object ), $file );
    865865                return compact( 'attachment_id', 'file', 'filename', 'url', 'type' );
    866866        }
    867867
     
    927927                        unset( $object['ID'] );
    928928
    929929                // Update the attachment
    930                 $attachment_id = $this->insert_attachment( $object, $cropped );
     930                $attachment_id = $this->insert_attachment( wp_slash( $object ), $cropped );
    931931
    932932                $url = wp_get_attachment_url( $attachment_id );
    933933                $this->set_header_image( compact( 'url', 'attachment_id', 'width', 'height' ) );
     
    10241024                                'width'         => $choice['width'],
    10251025                        );
    10261026
    1027                         update_post_meta( $choice['attachment_id'], '_wp_attachment_is_custom_header', get_stylesheet() );
     1027                        update_post_meta( $choice['attachment_id'], '_wp_attachment_is_custom_header', wp_slash( get_stylesheet() ) );
    10281028                        set_theme_mod( 'header_image', $choice['url'] );
    10291029                        set_theme_mod( 'header_image_data', $header_image_data );
    10301030                        return;
     
    11841184                $parent_id = isset( $object['post_parent'] ) ? $object['post_parent'] : null;
    11851185                unset( $object['post_parent'] );
    11861186
    1187                 $attachment_id = wp_insert_attachment( $object, $cropped );
     1187                $attachment_id = wp_insert_attachment( $object, $cropped ); // WPCS: slashing OK.
    11881188                $metadata = wp_generate_attachment_metadata( $attachment_id, $cropped );
    11891189
    11901190                // If this is a crop, save the original attachment ID as metadata.
     
    12031203                 */
    12041204                $metadata = apply_filters( 'wp_header_image_attachment_metadata', $metadata );
    12051205
    1206                 wp_update_attachment_metadata( $attachment_id, $metadata );
     1206                wp_update_attachment_metadata( $attachment_id, wp_slash( $metadata ) );
    12071207
    12081208                return $attachment_id;
    12091209        }
     
    12611261                        unset( $object['ID'] );
    12621262                }
    12631263
    1264                 $new_attachment_id = $this->insert_attachment( $object, $cropped );
     1264                $new_attachment_id = $this->insert_attachment( wp_slash( $object ), $cropped );
    12651265
    12661266                $object['attachment_id'] = $new_attachment_id;
    12671267                $object['url']           = wp_get_attachment_url( $new_attachment_id );;
     
    12931293                }
    12941294
    12951295                $key = '_wp_attachment_custom_header_last_used_' . get_stylesheet();
    1296                 update_post_meta( $attachment_id, $key, time() );
    1297                 update_post_meta( $attachment_id, '_wp_attachment_is_custom_header', get_stylesheet() );
     1296                update_post_meta( $attachment_id, wp_slash( $key ), time() );
     1297                update_post_meta( $attachment_id, '_wp_attachment_is_custom_header', wp_slash( get_stylesheet() ) );
    12981298
    12991299                wp_send_json_success();
    13001300        }
     
    13211321                }
    13221322
    13231323                $key = '_wp_attachment_custom_header_last_used_' . get_stylesheet();
    1324                 delete_post_meta( $attachment_id, $key );
    1325                 delete_post_meta( $attachment_id, '_wp_attachment_is_custom_header', get_stylesheet() );
     1324                delete_post_meta( $attachment_id, wp_slash( $key ) );
     1325                delete_post_meta( $attachment_id, '_wp_attachment_is_custom_header', wp_slash( get_stylesheet() ) );
    13261326
    13271327                wp_send_json_success();
    13281328        }
     
    13481348
    13491349                $attachment_id = $data['attachment_id'];
    13501350                $key = '_wp_attachment_custom_header_last_used_' . get_stylesheet();
    1351                 update_post_meta( $attachment_id, $key, time() );
     1351                update_post_meta( $attachment_id, wp_slash( $key ), time() );
    13521352        }
    13531353
    13541354        /**
  • src/wp-admin/includes/ajax-actions.php

     
    339339                 * The location is stored network-wide, so that the user doesn't have to set it on each site.
    340340                 */
    341341                if ( $ip_changed || $search ) {
    342                         update_user_option( $user_id, 'community-events-location', $events['location'], true );
     342                        update_user_option( $user_id, 'community-events-location', wp_slash( $events['location'] ), true );
    343343                }
    344344
    345345                wp_send_json_success( $events );
     
    523523                if ( '' === $category_nicename )
    524524                        continue;
    525525
    526                 $cat_id = wp_insert_term( $cat_name, $taxonomy->name, array( 'parent' => $parent ) );
     526                $cat_id = wp_insert_term( $cat_name, $taxonomy->name, array( 'parent' => $parent ) ); // WPCS: slashing OK (POST input).
    527527                if ( ! $cat_id || is_wp_error( $cat_id ) ) {
    528528                        continue;
    529529                } else {
     
    857857                if ( '' === $slug )
    858858                        continue;
    859859
    860                 $cat_id = wp_insert_term( $cat_name, 'link_category' );
     860                $cat_id = wp_insert_term( wp_slash( $cat_name ), 'link_category' );
    861861                if ( ! $cat_id || is_wp_error( $cat_id ) ) {
    862862                        continue;
    863863                } else {
     
    10991099                }
    11001100        }
    11011101
    1102         $comment_id = wp_new_comment( $commentdata );
     1102        $comment_id = wp_new_comment( $commentdata ); // WPCS: slashing OK (POST data).
    11031103
    11041104        if ( is_wp_error( $comment_id ) ) {
    11051105                wp_die( $comment_id->get_error_message() );
     
    12441244                $menu_items_data[] = $menu_item_data;
    12451245        }
    12461246
    1247         $item_ids = wp_save_nav_menu_items( 0, $menu_items_data );
     1247        $item_ids = wp_save_nav_menu_items( 0, $menu_items_data ); // WPCS: slashing OK (POST data).
    12481248        if ( is_wp_error( $item_ids ) )
    12491249                wp_die( 0 );
    12501250
     
    13061306                        /* translators: 1: Post creation date, 2: Post creation time */
    13071307                        $post_data['post_title'] = sprintf( __( 'Draft created on %1$s at %2$s' ), date( __( 'F j, Y' ), $now ), date( __( 'g:i a' ), $now ) );
    13081308
    1309                         $pid = edit_post( $post_data );
     1309                        $pid = edit_post( wp_slash( $post_data ) );
    13101310                        if ( $pid ) {
    13111311                                if ( is_wp_error( $pid ) ) {
    13121312                                        $x = new WP_Ajax_Response( array(
     
    14371437                wp_die( -1 );
    14381438
    14391439        if ( is_array($closed) )
    1440                 update_user_option($user->ID, "closedpostboxes_$page", $closed, true);
     1440                update_user_option($user->ID, "closedpostboxes_$page", $closed, true); // WPCS: slashing OK (POST data).
    14411441
    14421442        if ( is_array($hidden) ) {
    14431443                $hidden = array_diff( $hidden, array('submitdiv', 'linksubmitdiv', 'manage-menu', 'create-menu') ); // postboxes that are always shown
    1444                 update_user_option($user->ID, "metaboxhidden_$page", $hidden, true);
     1444                update_user_option($user->ID, "metaboxhidden_$page", $hidden, true); // WPCS: slashing OK (POST data).
    14451445        }
    14461446
    14471447        wp_die( 1 );
     
    14631463                wp_die( -1 );
    14641464
    14651465        $hidden = ! empty( $_POST['hidden'] ) ? explode( ',', $_POST['hidden'] ) : array();
    1466         update_user_option( $user->ID, "manage{$page}columnshidden", $hidden, true );
     1466        update_user_option( $user->ID, "manage{$page}columnshidden", $hidden, true ); // WPCS: slashing OK (POST data).
    14671467
    14681468        wp_die( 1 );
    14691469}
     
    14791479        if ( ! current_user_can( 'edit_theme_options' ) )
    14801480                wp_die( -1 );
    14811481
    1482         update_user_meta( get_current_user_id(), 'show_welcome_panel', empty( $_POST['visible'] ) ? 0 : 1 );
     1482        update_user_meta( get_current_user_id(), 'show_welcome_panel', empty( $_POST['visible'] ) ? 0 : 1 ); // WPCS: slashing OK.
    14831483
    14841484        wp_die( 1 );
    14851485}
     
    16041604                wp_die( -1 );
    16051605
    16061606        if ( $order )
    1607                 update_user_option($user->ID, "meta-box-order_$page", $order, true);
     1607                update_user_option($user->ID, "meta-box-order_$page", $order, true); // WPCS: slashing OK (POST data).
    16081608
    16091609        if ( $page_columns )
    1610                 update_user_option($user->ID, "screen_layout_$page", $page_columns, true);
     1610                update_user_option($user->ID, "screen_layout_$page", $page_columns, true); // WPCS: slashing OK (POST data).
    16111611
    16121612        wp_die( 1 );
    16131613}
     
    17761776        $wp_list_table = _get_list_table( 'WP_Terms_List_Table', array( 'screen' => 'edit-' . $taxonomy ) );
    17771777
    17781778        $tag = get_term( $id, $taxonomy );
    1779         $_POST['description'] = $tag->description;
     1779        $_POST['description'] = wp_slash( $tag->description );
    17801780
    17811781        $updated = wp_update_term($id, $taxonomy, $_POST);
    17821782        if ( $updated && !is_wp_error($updated) ) {
     
    18221822                'posts_per_page' => 50,
    18231823        );
    18241824        if ( '' !== $s )
    1825                 $args['s'] = $s;
     1825                $args['s'] = wp_slash( $s );
    18261826
    1827         $posts = get_posts( $args );
     1827        $posts = get_posts( $args ); // WPCS: slashing OK (s slashed, title not used).
    18281828
    18291829        if ( ! $posts ) {
    18301830                wp_send_json_error( __( 'No items found.' ) );
     
    21262126
    21272127        if ( isset( $post_data['context'] ) && isset( $post_data['theme'] ) ) {
    21282128                if ( 'custom-background' === $post_data['context'] )
    2129                         update_post_meta( $attachment_id, '_wp_attachment_is_custom_background', $post_data['theme'] );
     2129                        update_post_meta( $attachment_id, '_wp_attachment_is_custom_background', $post_data['theme'] ); // WPCS: slashing OK (POST data).
    21302130
    21312131                if ( 'custom-header' === $post_data['context'] )
    2132                         update_post_meta( $attachment_id, '_wp_attachment_is_custom_header', $post_data['theme'] );
     2132                        update_post_meta( $attachment_id, '_wp_attachment_is_custom_header', $post_data['theme'] ); // WPCS: slashing OK (POST data).
    21332133        }
    21342134
    21352135        if ( ! $attachment = wp_prepare_attachment_for_js( $attachment_id ) )
     
    23752375         *                      should last, plus 5 seconds. Default 150.
    23762376         */
    23772377        $new_lock = ( time() - apply_filters( 'wp_check_post_lock_window', 150 ) + 5 ) . ':' . $active_lock[1];
    2378         update_post_meta( $post_id, '_edit_lock', $new_lock, implode( ':', $active_lock ) );
     2378        update_post_meta( $post_id, '_edit_lock', $new_lock, implode( ':', $active_lock ) ); // WPCS: slashing OK.
    23792379        wp_die( 1 );
    23802380}
    23812381
     
    23992399        $dismissed[] = $pointer;
    24002400        $dismissed = implode( ',', $dismissed );
    24012401
    2402         update_user_meta( get_current_user_id(), 'dismissed_wp_pointers', $dismissed );
     2402        update_user_meta( get_current_user_id(), 'dismissed_wp_pointers', wp_slash( $dismissed ) );
    24032403        wp_die( 1 );
    24042404}
    24052405
     
    25052505                wp_send_json_error();
    25062506
    25072507        $changes = $_REQUEST['changes'];
    2508         $post    = get_post( $id, ARRAY_A );
     2508        $post    = wp_slash( get_post( $id, ARRAY_A ) );
    25092509
    25102510        if ( 'attachment' != $post['post_type'] )
    25112511                wp_send_json_error();
     
    25482548                }
    25492549
    25502550                if ( $changed ) {
    2551                         wp_update_attachment_metadata( $id, $id3data );
     2551                        wp_update_attachment_metadata( $id, wp_slash( $id3data ) );
    25522552                }
    25532553        }
    25542554
     
    25552555        if ( MEDIA_TRASH && isset( $changes['status'] ) && 'trash' === $changes['status'] ) {
    25562556                wp_delete_post( $id );
    25572557        } else {
    2558                 wp_update_post( $post );
     2558                wp_update_post( $post ); // WPCS: slashing OK (POST data).
    25592559        }
    25602560
    25612561        wp_send_json_success();
     
    25952595                unset( $post['errors'] );
    25962596        }
    25972597
    2598         wp_update_post( $post );
     2598        wp_update_post( wp_slash( $post ) );
    25992599
    26002600        foreach ( get_attachment_taxonomies( $post ) as $taxonomy ) {
    26012601                if ( isset( $attachment_data[ $taxonomy ] ) )
    2602                         wp_set_object_terms( $id, array_map( 'trim', preg_split( '/,+/', $attachment_data[ $taxonomy ] ) ), $taxonomy, false );
     2602                        wp_set_object_terms( $id, array_map( 'trim', preg_split( '/,+/', $attachment_data[ $taxonomy ] ) ), $taxonomy, false ); // WPCS: slashing OK (POST data).
    26032603        }
    26042604
    26052605        if ( ! $attachment = wp_prepare_attachment_for_js( $id ) )
     
    28982898        }
    28992899
    29002900        $previous_color_scheme = get_user_meta( get_current_user_id(), 'admin_color', true );
    2901         update_user_meta( get_current_user_id(), 'admin_color', $color_scheme );
     2901        update_user_meta( get_current_user_id(), 'admin_color', $color_scheme ); // WPCS: slashing OK (sanitize_key()).
    29022902
    29032903        wp_send_json_success( array(
    29042904                'previousScheme' => 'admin-color-' . $previous_color_scheme,
     
    32603260
    32613261                        // Update the attachment.
    32623262                        add_filter( 'intermediate_image_sizes_advanced', array( $wp_site_icon, 'additional_sizes' ) );
    3263                         $attachment_id = $wp_site_icon->insert_attachment( $object, $cropped );
     3263                        $attachment_id = $wp_site_icon->insert_attachment( wp_slash( $object ), $cropped );
    32643264                        remove_filter( 'intermediate_image_sizes_advanced', array( $wp_site_icon, 'additional_sizes' ) );
    32653265
    32663266                        // Additional sizes in wp_prepare_attachment_for_js().
     
    32993299                                'context'        => $context,
    33003300                        );
    33013301
    3302                         $attachment_id = wp_insert_attachment( $object, $cropped );
     3302                        $attachment_id = wp_insert_attachment( wp_slash( $object ), $cropped );
    33033303                        $metadata = wp_generate_attachment_metadata( $attachment_id, $cropped );
    33043304
    33053305                        /**
     
    33123312                         * @param array $metadata Attachment metadata.
    33133313                         */
    33143314                        $metadata = apply_filters( 'wp_ajax_cropped_attachment_metadata', $metadata );
    3315                         wp_update_attachment_metadata( $attachment_id, $metadata );
     3315                        wp_update_attachment_metadata( $attachment_id, wp_slash( $metadata ) );
    33163316
    33173317                        /**
    33183318                         * Filters the attachment ID for a cropped image.
     
    33553355                wp_send_json_error();
    33563356        }
    33573357
    3358         wp_send_json_success( update_user_meta( get_current_user_id(), 'wporg_favorites', $username ) );
     3358        wp_send_json_success( update_user_meta( get_current_user_id(), 'wporg_favorites', wp_slash( $username ) ) );
    33593359}
    33603360
    33613361/**
  • src/wp-admin/includes/bookmark.php

     
    154154
    155155        $defaults = array( 'link_id' => 0, 'link_name' => '', 'link_url' => '', 'link_rating' => 0 );
    156156
     157        // expected_slashed: $linkdata.
    157158        $args = wp_parse_args( $linkdata, $defaults );
    158159        $r = wp_unslash( sanitize_bookmark( $args, 'db' ) );
    159160
     
    255256        $link_categories = array_map( 'intval', $link_categories );
    256257        $link_categories = array_unique( $link_categories );
    257258
    258         wp_set_object_terms( $link_id, $link_categories, 'link_category' );
     259        wp_set_object_terms( $link_id, $link_categories, 'link_category' ); // WPCS: slashing OK (intval()).
    259260
    260261        clean_bookmark_cache( $link_id );
    261262}
  • src/wp-admin/includes/class-file-upload-upgrader.php

     
    7777                        );
    7878
    7979                        // Save the data.
    80                         $this->id = wp_insert_attachment( $object, $file['file'] );
     80                        $this->id = wp_insert_attachment( wp_slash( $object ), $file['file'] );
    8181
    8282                        // Schedule a cleanup for 2 hours from now in case of failed installation.
    8383                        wp_schedule_single_event( time() + 2 * HOUR_IN_SECONDS, 'upgrader_scheduled_cleanup', array( $this->id ) );
  • src/wp-admin/includes/class-wp-links-list-table.php

     
    6464                if ( !empty( $order ) )
    6565                        $args['order'] = $order;
    6666
    67                 $this->items = get_bookmarks( $args );
     67                $this->items = get_bookmarks( wp_slash( $args ) );
    6868        }
    6969
    7070        /**
  • src/wp-admin/includes/class-wp-plugin-install-list-table.php

     
    190190                                $action = 'save_wporg_username_' . get_current_user_id();
    191191                                if ( isset( $_GET['_wpnonce'] ) && wp_verify_nonce( wp_unslash( $_GET['_wpnonce'] ), $action ) ) {
    192192                                        $user = isset( $_GET['user'] ) ? wp_unslash( $_GET['user'] ) : get_user_option( 'wporg_favorites' );
    193                                         update_user_meta( get_current_user_id(), 'wporg_favorites', $user );
     193                                        update_user_meta( get_current_user_id(), 'wporg_favorites', wp_slash( $user ) );
    194194                                } else {
    195195                                        $user = get_user_option( 'wporg_favorites' );
    196196                                }
  • src/wp-admin/includes/class-wp-screen.php

     
    10171017                        if ( 'dashboard' === $this->id && has_action( 'welcome_panel' ) && current_user_can( 'edit_theme_options' ) ) {
    10181018                                if ( isset( $_GET['welcome'] ) ) {
    10191019                                        $welcome_checked = empty( $_GET['welcome'] ) ? 0 : 1;
    1020                                         update_user_meta( get_current_user_id(), 'show_welcome_panel', $welcome_checked );
     1020                                        update_user_meta( get_current_user_id(), 'show_welcome_panel', (int) $welcome_checked );
    10211021                                } else {
    10221022                                        $welcome_checked = get_user_meta( get_current_user_id(), 'show_welcome_panel', true );
    10231023                                        if ( 2 == $welcome_checked && wp_get_current_user()->user_email != get_option( 'admin_email' ) ) {
  • src/wp-admin/includes/class-wp-site-icon.php

     
    112112         * @return int           Attachment ID
    113113         */
    114114        public function insert_attachment( $object, $file ) {
    115                 $attachment_id = wp_insert_attachment( $object, $file );
     115                $attachment_id = wp_insert_attachment( $object, $file ); // WPCS: slashing OK.
    116116                $metadata      = wp_generate_attachment_metadata( $attachment_id, $file );
    117117
    118118                /**
     
    125125                 * @param array $metadata Attachment metadata.
    126126                 */
    127127                $metadata = apply_filters( 'site_icon_attachment_metadata', $metadata );
    128                 wp_update_attachment_metadata( $attachment_id, $metadata );
     128                wp_update_attachment_metadata( $attachment_id, wp_slash( $metadata ) );
    129129
    130130                return $attachment_id;
    131131        }
  • src/wp-admin/includes/class-wp-themes-list-table.php

     
    188188
    189189                        if ( ! is_multisite() && current_user_can( 'delete_themes' ) )
    190190                                $actions['delete'] = '<a class="submitdelete deletion" href="' . wp_nonce_url( 'themes.php?action=delete&amp;stylesheet=' . urlencode( $stylesheet ), 'delete-theme_' . $stylesheet )
    191                                         . '" onclick="' . "return confirm( '" . esc_js( sprintf( __( "You are about to delete this theme '%s'\n  'Cancel' to stop, 'OK' to delete." ), $title ) )
     191                                        . '" onclick="' . "return confirm( '" . esc_js( sprintf( __( "You are about to delete this theme '%s'\n  'Cancel' to stop, 'OK' to delete." ), wp_slash( $title ) ) ) // WPCS: slashing OK.
    192192                                        . "' );" . '">' . __( 'Delete' ) . '</a>';
    193193
    194194                        /** This filter is documented in wp-admin/includes/class-wp-ms-themes-list-table.php */
  • src/wp-admin/includes/comment.php

     
    3232                $date_field = 'comment_date_gmt';
    3333        }
    3434
     35        // expected_slashed: $comment_author, $comment_date?.
    3536        return $wpdb->get_var( $wpdb->prepare("SELECT comment_post_ID FROM $wpdb->comments
    3637                        WHERE comment_author = %s AND $date_field = %s",
    3738                        stripslashes( $comment_author ),
     
    193194        echo "<div class='wrap'><p>$msg</p></div>";
    194195        include( ABSPATH . 'wp-admin/admin-footer.php' );
    195196        die;
    196 }
    197  No newline at end of file
     197}
  • src/wp-admin/includes/dashboard.php

     
    557557                 */
    558558                $query_args = apply_filters( 'dashboard_recent_drafts_query_args', $query_args );
    559559
    560                 $drafts = get_posts( $query_args );
     560                $drafts = get_posts( $query_args ); // WPCS: slashing OK (s, title not used).
    561561                if ( ! $drafts ) {
    562562                        return;
    563563                }
  • src/wp-admin/includes/deprecated.php

     
    490490        function __construct( $search_term = '', $page = '', $role = '' ) {
    491491                _deprecated_function( __FUNCTION__, '3.1.0', 'WP_User_Query' );
    492492
     493                // expected_slashed: $search_term.
    493494                $this->search_term = wp_unslash( $search_term );
    494495                $this->raw_page = ( '' == $page ) ? false : (int) $page;
    495496                $this->page = (int) ( '' == $page ) ? 1 : $page;
  • src/wp-admin/includes/export.php

     
    110110
    111111        $join = '';
    112112        if ( $args['category'] && 'post' == $args['content'] ) {
    113                 if ( $term = term_exists( $args['category'], 'category' ) ) {
     113                if ( $term = term_exists( $args['category'], 'category' ) ) { // WPCS: slashing OK (slug).
    114114                        $join = "INNER JOIN {$wpdb->term_relationships} ON ({$wpdb->posts}.ID = {$wpdb->term_relationships}.object_id)";
    115115                        $where .= $wpdb->prepare( " AND {$wpdb->term_relationships}.term_taxonomy_id = %d", $term['term_taxonomy_id'] );
    116116                }
  • src/wp-admin/includes/image-edit.php

     
    655655                }
    656656
    657657                $restored_file = path_join($parts['dirname'], $data['file']);
    658                 $restored = update_attached_file($post_id, $restored_file);
     658                $restored = update_attached_file( $post_id, wp_slash( $restored_file ) );
    659659
    660660                $meta['file'] = _wp_relative_upload_path( $restored_file );
    661661                $meta['width'] = $data['width'];
     
    684684                }
    685685        }
    686686
    687         if ( ! wp_update_attachment_metadata( $post_id, $meta ) ||
    688                 ( $old_backup_sizes !== $backup_sizes && ! update_post_meta( $post_id, '_wp_attachment_backup_sizes', $backup_sizes ) ) ) {
     687        if ( ! wp_update_attachment_metadata( $post_id, wp_slash( $meta ) ) ||
     688                ( $old_backup_sizes !== $backup_sizes && ! update_post_meta( $post_id, '_wp_attachment_backup_sizes', wp_slash( $backup_sizes ) ) ) ) {
    689689
    690690                $msg->error = __('Cannot save image metadata.');
    691691                return $msg;
     
    811811                if ( $tag ) {
    812812                        $backup_sizes[$tag] = array('width' => $meta['width'], 'height' => $meta['height'], 'file' => $basename );
    813813                }
    814                 $success = ( $path === $new_path ) || update_attached_file( $post_id, $new_path );
     814                $success = ( $path === $new_path ) || update_attached_file( $post_id, wp_slash( $new_path ) );
    815815
    816816                $meta['file'] = _wp_relative_upload_path( $new_path );
    817817
     
    883883        unset( $img );
    884884
    885885        if ( $success ) {
    886                 wp_update_attachment_metadata( $post_id, $meta );
    887                 update_post_meta( $post_id, '_wp_attachment_backup_sizes', $backup_sizes);
     886                wp_update_attachment_metadata( $post_id, wp_slash( $meta ) );
     887                update_post_meta( $post_id, '_wp_attachment_backup_sizes', wp_slash( $backup_sizes ) );
    888888
    889889                if ( $target == 'thumbnail' || $target == 'all' || $target == 'full' ) {
    890890                        // Check if it's an image edit from attachment edit screen
  • src/wp-admin/includes/image.php

     
    165165                $exists = reset( $posts );
    166166
    167167                if ( ! empty( $exists ) ) {
    168                         update_post_meta( $attachment_id, '_thumbnail_id', $exists );
     168                        update_post_meta( $attachment_id, '_thumbnail_id', (int) $exists );
    169169                } else {
    170170                        $ext = '.jpg';
    171171                        switch ( $metadata['image']['mime'] ) {
     
    195195                                 */
    196196                                $image_attachment = apply_filters( 'attachment_thumbnail_args', $image_attachment, $metadata, $uploaded );
    197197
    198                                 $sub_attachment_id = wp_insert_attachment( $image_attachment, $uploaded['file'] );
    199                                 add_post_meta( $sub_attachment_id, '_cover_hash', $hash );
     198                                $sub_attachment_id = wp_insert_attachment( $image_attachment, $uploaded['file'] ); // WPCS: slashing OK.
     199                                add_post_meta( $sub_attachment_id, '_cover_hash', $hash ); // WPCS: slashing OK.
    200200                                $attach_data = wp_generate_attachment_metadata( $sub_attachment_id, $uploaded['file'] );
    201                                 wp_update_attachment_metadata( $sub_attachment_id, $attach_data );
    202                                 update_post_meta( $attachment_id, '_thumbnail_id', $sub_attachment_id );
     201                                wp_update_attachment_metadata( $sub_attachment_id, wp_slash( $attach_data ) );
     202                                update_post_meta( $attachment_id, '_thumbnail_id', (int) $sub_attachment_id );
    203203                        }
    204204                }
    205205        }
  • src/wp-admin/includes/import.php

     
    104104        );
    105105
    106106        // Save the data
    107         $id = wp_insert_attachment( $object, $upload['file'] );
     107        $id = wp_insert_attachment( wp_slash( $object ), $upload['file'] );
    108108
    109109        /*
    110110         * Schedule a cleanup for one day from now in case of failed
  • src/wp-admin/includes/media.php

     
    370370                'post_mime_type' => $type,
    371371                'guid' => $url,
    372372                'post_parent' => $post_id,
    373                 'post_title' => $title,
    374                 'post_content' => $content,
    375                 'post_excerpt' => $excerpt,
     373                'post_title' => wp_slash( $title ),
     374                'post_content' => wp_slash( $content ),
     375                'post_excerpt' => wp_slash( $excerpt ),
    376376        ), $post_data );
    377377
    378378        // This should never be set as it would then overwrite an existing attachment.
     
    379379        unset( $attachment['ID'] );
    380380
    381381        // Save the data
    382         $id = wp_insert_attachment( $attachment, $file, $post_id, true );
     382        $id = wp_insert_attachment( $attachment, $file, $post_id, true ); // WPCS: slashing OK.
    383383        if ( !is_wp_error($id) ) {
    384                 wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) );
     384                wp_update_attachment_metadata( $id, wp_slash( wp_generate_attachment_metadata( $id, $file ) ) );
    385385        }
    386386
    387387        return $id;
     
    434434                'post_mime_type' => $type,
    435435                'guid' => $url,
    436436                'post_parent' => $post_id,
    437                 'post_title' => $title,
    438                 'post_content' => $content,
     437                'post_title' => wp_slash( $title ),
     438                'post_content' => wp_slash( $content ),
    439439        ), $post_data );
    440440
    441441        // This should never be set as it would then overwrite an existing attachment.
     
    442442        unset( $attachment['ID'] );
    443443
    444444        // Save the attachment metadata
    445         $id = wp_insert_attachment($attachment, $file, $post_id);
     445        $id = wp_insert_attachment($attachment, $file, $post_id); // WPCS: slashing OK.
    446446        if ( !is_wp_error($id) )
    447                 wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) );
     447                wp_update_attachment_metadata( $id, wp_slash( wp_generate_attachment_metadata( $id, $file ) ) );
    448448
    449449        return $id;
    450450}
     
    698698                }
    699699
    700700                if ( $post != $_post )
    701                         wp_update_post($post);
     701                        wp_update_post($post); // WPCS: slashing OK (POST data).
    702702
    703703                foreach ( get_attachment_taxonomies($post) as $t ) {
    704704                        if ( isset($attachment[$t]) )
    705                                 wp_set_object_terms($attachment_id, array_map('trim', preg_split('/,+/', $attachment[$t])), $t, false);
     705                                wp_set_object_terms($attachment_id, array_map('trim', preg_split('/,+/', $attachment[$t])), $t, false); // WPCS: slashing OK (POST data).
    706706                }
    707707        }
    708708
  • src/wp-admin/includes/misc.php

     
    634634                                break;
    635635                }
    636636
    637                 update_user_meta($user->ID, $option, $value);
     637                update_user_meta($user->ID, $option, $value); // WPCS: slashing OK (POST data).
    638638
    639639                $url = remove_query_arg( array( 'pagenum', 'apage', 'paged' ), wp_get_referer() );
    640640                if ( isset( $_POST['mode'] ) ) {
  • src/wp-admin/includes/ms.php

     
    690690                        <?php
    691691                        if ( !$found ) {
    692692                                $blog = reset( $all_blogs );
    693                                 update_user_meta( get_current_user_id(), 'primary_blog', $blog->userblog_id );
     693                                update_user_meta( get_current_user_id(), 'primary_blog', (int) $blog->userblog_id );
    694694                        }
    695695                } elseif ( count( $all_blogs ) == 1 ) {
    696696                        $blog = reset( $all_blogs );
    697697                        echo esc_url( get_home_url( $blog->userblog_id ) );
    698698                        if ( $primary_blog != $blog->userblog_id ) // Set the primary blog again if it's out of sync with blog list.
    699                                 update_user_meta( get_current_user_id(), 'primary_blog', $blog->userblog_id );
     699                                update_user_meta( get_current_user_id(), 'primary_blog', (int) $blog->userblog_id );
    700700                } else {
    701701                        echo "N/A";
    702702                }
  • src/wp-admin/includes/nav-menu.php

     
    182182        }
    183183
    184184        $user = wp_get_current_user();
    185         update_user_option( $user->ID, 'metaboxhidden_nav-menus', $hidden_meta_boxes, true );
     185        update_user_option( $user->ID, 'metaboxhidden_nav-menus', wp_slash( $hidden_meta_boxes ), true );
    186186}
    187187
    188188/**
     
    446446                        <?php
    447447                        if ( isset( $_REQUEST['quick-search-posttype-' . $post_type_name] ) ) {
    448448                                $searched = esc_attr( $_REQUEST['quick-search-posttype-' . $post_type_name] );
    449                                 $search_results = get_posts( array( 's' => $searched, 'post_type' => $post_type_name, 'fields' => 'all', 'order' => 'DESC', ) );
     449                                $search_results = get_posts( array( 's' => $searched, 'post_type' => $post_type_name, 'fields' => 'all', 'order' => 'DESC', ) ); // WPCS: slashing OK.
    450450                        } else {
    451451                                $searched = '';
    452452                                $search_results = array();
     
    800800        $menu_id = (int) $menu_id;
    801801        $items_saved = array();
    802802
    803         if ( 0 == $menu_id || is_nav_menu( $menu_id ) ) {
     803        if ( 0 == $menu_id || is_nav_menu( (int) $menu_id ) ) {
    804804
    805805                // Loop through all the menu items' POST values.
    806806                foreach ( (array) $menu_data as $_possible_db_id => $_item_object_data ) {
     
    907907 * @return string|WP_Error $output The menu formatted to edit or error object on failure.
    908908 */
    909909function wp_get_nav_menu_to_edit( $menu_id = 0 ) {
    910         $menu = wp_get_nav_menu_object( $menu_id );
     910        $menu = wp_get_nav_menu_object( (int) $menu_id );
    911911
    912912        // If the menu exists, get its items.
    913         if ( is_nav_menu( $menu ) ) {
    914                 $menu_items = wp_get_nav_menu_items( $menu->term_id, array('post_status' => 'any') );
     913        if ( is_nav_menu( $menu ) ) { // WPCS: slashing OK.
     914                $menu_items = wp_get_nav_menu_items( (int) $menu->term_id, array('post_status' => 'any') );
    915915                $result = '<div id="menu-instructions" class="post-body-plain';
    916916                $result .= ( ! empty($menu_items) ) ? ' menu-instructions-inactive">' : '">';
    917917                $result .= '<p>' . __( 'Add menu items from the column on the left.' ) . '</p>';
     
    10151015 * @return array $messages The menu updated message
    10161016 */
    10171017function wp_nav_menu_update_menu_items ( $nav_menu_selected_id, $nav_menu_selected_title ) {
    1018         $unsorted_menu_items = wp_get_nav_menu_items( $nav_menu_selected_id, array( 'orderby' => 'ID', 'output' => ARRAY_A, 'output_key' => 'ID', 'post_status' => 'draft,publish' ) );
     1018        $unsorted_menu_items = wp_get_nav_menu_items( (int) $nav_menu_selected_id, array( 'orderby' => 'ID', 'output' => ARRAY_A, 'output_key' => 'ID', 'post_status' => 'draft,publish' ) );
    10191019        $messages = array();
    10201020        $menu_items = array();
    10211021        // Index menu items by db ID
     
    10421042                        foreach ( $post_fields as $field )
    10431043                                $args[$field] = isset( $_POST[$field][$_key] ) ? $_POST[$field][$_key] : '';
    10441044
    1045                         $menu_item_db_id = wp_update_nav_menu_item( $nav_menu_selected_id, ( $_POST['menu-item-db-id'][$_key] != $_key ? 0 : $_key ), $args );
     1045                        $menu_item_db_id = wp_update_nav_menu_item( $nav_menu_selected_id, ( $_POST['menu-item-db-id'][$_key] != $_key ? 0 : $_key ), $args ); // WPCS: slashing OK.
    10461046
    10471047                        if ( is_wp_error( $menu_item_db_id ) ) {
    10481048                                $messages[] = '<div id="message" class="error"><p>' . $menu_item_db_id->get_error_message() . '</p></div>';
  • src/wp-admin/includes/post.php

     
    187187function edit_post( $post_data = null ) {
    188188        global $wpdb;
    189189
     190        // expected_slashed: $post_data.
    190191        if ( empty($post_data) )
    191192                $post_data = &$_POST;
    192193
     
    605606                $post_excerpt = esc_html( wp_unslash( $_REQUEST['excerpt'] ));
    606607
    607608        if ( $create_in_db ) {
    608                 $post_id = wp_insert_post( array( 'post_title' => __( 'Auto Draft' ), 'post_type' => $post_type, 'post_status' => 'auto-draft' ) );
     609                $post_id = wp_insert_post( array( 'post_title' => wp_slash( __( 'Auto Draft' ) ), 'post_type' => $post_type, 'post_status' => 'auto-draft' ) );
    609610                $post = get_post( $post_id );
    610611                if ( current_theme_supports( 'post-formats' ) && post_type_supports( $post->post_type, 'post-formats' ) && get_option( 'default_post_format' ) )
    611612                        set_post_format( $post, get_option( 'default_post_format' ) );
     
    679680function post_exists($title, $content = '', $date = '') {
    680681        global $wpdb;
    681682
     683        // expected_slashed: $title, $content, $date.
    682684        $post_title = wp_unslash( sanitize_post_field( 'post_title', $title, 0, 'db' ) );
    683685        $post_content = wp_unslash( sanitize_post_field( 'post_content', $content, 0, 'db' ) );
    684686        $post_date = wp_unslash( sanitize_post_field( 'post_date', $date, 0, 'db' ) );
     
    768770
    769771        add_meta( $post_ID );
    770772
    771         add_post_meta( $post_ID, '_edit_last', $GLOBALS['current_user']->ID );
     773        add_post_meta( $post_ID, '_edit_last', (int) $GLOBALS['current_user']->ID );
    772774
    773775        // Now that we have an ID we can fix any attachment anchor hrefs
    774776        _fix_attachment_links( $post_ID );
     
    828830                if ( is_protected_meta( $metakey, 'post' ) || ! current_user_can( 'add_post_meta', $post_ID, $metakey ) )
    829831                        return false;
    830832
    831                 $metakey = wp_slash( $metakey );
    832 
    833                 return add_post_meta( $post_ID, $metakey, $metavalue );
     833                return add_post_meta( $post_ID, wp_slash( $metakey ), $metavalue ); // WPCS: slashing OK (POST data).
    834834        }
    835835
    836836        return false;
     
    910910 * @return bool
    911911 */
    912912function update_meta( $meta_id, $meta_key, $meta_value ) {
     913        // expected_slashed: $meta_key, $meta_value.
    913914        $meta_key = wp_unslash( $meta_key );
    914915        $meta_value = wp_unslash( $meta_value );
    915916
     
    966967
    967968        if ( $replace ) {
    968969                $post['post_content'] = $content;
    969                 // Escape data pulled from DB.
    970                 $post = add_magic_quotes($post);
    971 
    972                 return wp_update_post($post);
     970                return wp_update_post( wp_slash( $post ) );
    973971        }
    974972}
    975973
     
    15011499        $now = time();
    15021500        $lock = "$now:$user_id";
    15031501
    1504         update_post_meta( $post->ID, '_edit_lock', $lock );
     1502        update_post_meta( $post->ID, '_edit_lock', $lock ); // WPCS: slashing OK.
    15051503
    15061504        return array( $now, $user_id );
    15071505}
     
    16711669 * @return mixed The autosave revision ID. WP_Error or 0 on error.
    16721670 */
    16731671function wp_create_post_autosave( $post_data ) {
     1672        // expected_slashed: $post_data.
    16741673        if ( is_numeric( $post_data ) ) {
    16751674                $post_id = $post_data;
    16761675                $post_data = $_POST;
     
    17541753                if ( isset( $_POST['post_status'] ) && 'auto-draft' == $_POST['post_status'] )
    17551754                        $_POST['post_status'] = 'draft';
    17561755
    1757                 $saved_post_id = wp_create_post_autosave( $post->ID );
     1756                $saved_post_id = wp_create_post_autosave( (int) $post->ID );
    17581757        }
    17591758
    17601759        if ( is_wp_error( $saved_post_id ) )
  • src/wp-admin/includes/schema.php

     
    10481048                $current_site->site_name = ucfirst( $domain );
    10491049                $wpdb->insert( $wpdb->blogs, array( 'site_id' => $network_id, 'blog_id' => 1, 'domain' => $domain, 'path' => $path, 'registered' => current_time( 'mysql' ) ) );
    10501050                $current_site->blog_id = $blog_id = $wpdb->insert_id;
    1051                 update_user_meta( $site_user->ID, 'source_domain', $domain );
    1052                 update_user_meta( $site_user->ID, 'primary_blog', $blog_id );
     1051                update_user_meta( $site_user->ID, 'source_domain', $domain ); // WPCS: slashing OK.
     1052                update_user_meta( $site_user->ID, 'primary_blog', (int) $blog_id );
    10531053
    10541054                if ( $subdomain_install )
    10551055                        $wp_rewrite->set_permalink_structure( '/%year%/%monthnum%/%day%/%postname%/' );
  • src/wp-admin/includes/taxonomy.php

     
    7878        }
    7979
    8080        if ( $post_id )
    81                 wp_set_post_categories($post_id, $cat_ids);
     81                wp_set_post_categories($post_id, $cat_ids); // WPCS: slashing OK.
    8282
    8383        return $cat_ids;
    8484}
     
    131131        }
    132132
    133133        if ( empty( $parent )
    134                 || ! term_exists( $parent, $catarr['taxonomy'] )
     134                || ! term_exists( (int) $parent, $catarr['taxonomy'] )
    135135                || ( $catarr['cat_ID'] && term_is_ancestor_of( $catarr['cat_ID'], $parent, $catarr['taxonomy'] ) ) ) {
    136136                $parent = 0;
    137137        }
  • src/wp-admin/includes/upgrade.php

     
    829829                if ( !empty( $user->user_nickname ) )
    830830                        update_user_meta( $user->ID, 'nickname', wp_slash($user->user_nickname) );
    831831                if ( !empty( $user->user_level ) )
    832                         update_user_meta( $user->ID, $wpdb->prefix . 'user_level', $user->user_level );
     832                        update_user_meta( $user->ID, $wpdb->prefix . 'user_level', $user->user_level ); // WPCS: slashing OK.
    833833                if ( !empty( $user->user_icq ) )
    834834                        update_user_meta( $user->ID, 'icq', wp_slash($user->user_icq) );
    835835                if ( !empty( $user->user_aim ) )
     
    858858                if ( empty($caps) || defined('RESET_CAPS') ) {
    859859                        $level = get_user_meta($user->ID, $wpdb->prefix . 'user_level', true);
    860860                        $role = translate_level_to_role($level);
    861                         update_user_meta( $user->ID, $wpdb->prefix . 'capabilities', array($role => true) );
     861                        update_user_meta( $user->ID, $wpdb->prefix . 'capabilities', array($role => true) ); // WPCS: slashing OK.
    862862                }
    863863
    864864        endforeach;
     
    888888
    889889                        $meta = get_post_meta($object->ID, 'imagedata', true);
    890890                        if ( ! empty($meta['file']) )
    891                                 update_attached_file( $object->ID, $meta['file'] );
     891                                update_attached_file( $object->ID, wp_slash( $meta['file'] ) );
    892892                }
    893893        }
    894894}
  • src/wp-admin/includes/user.php

     
    155155        }
    156156
    157157        if ( !empty( $pass1 ) )
    158                 $user->user_pass = $pass1;
     158                $user->user_pass = wp_unslash( $pass1 );
    159159
    160160        if ( !$update && isset( $_POST['user_login'] ) && !validate_username( $_POST['user_login'] ) )
    161161                $errors->add( 'user_login', __( '<strong>ERROR</strong>: This username is invalid because it uses illegal characters. Please enter a valid username.' ));
     
    194194                return $errors;
    195195
    196196        if ( $update ) {
    197                 $user_id = wp_update_user( $user );
     197                $user_id = wp_update_user( $user ); // WPCS: slashing OK (unslashes user_pass).
    198198        } else {
    199                 $user_id = wp_insert_user( $user );
     199                $user_id = wp_insert_user( $user ); // WPCS: slashing OK (unslashes user_pass).
    200200                $notify  = isset( $_POST['send_user_notification'] ) ? 'both' : 'admin';
    201201
    202202                /**
  • src/wp-admin/nav-menus.php

     
    7171                if ( is_nav_menu_item( $menu_item_id ) ) {
    7272                        $menus = isset( $_REQUEST['menu'] ) ? array( (int) $_REQUEST['menu'] ) : wp_get_object_terms( $menu_item_id, 'nav_menu', array( 'fields' => 'ids' ) );
    7373                        if ( ! is_wp_error( $menus ) && ! empty( $menus[0] ) ) {
    74                                 $menu_id = (int) $menus[0];
    75                                 $ordered_menu_items = wp_get_nav_menu_items( $menu_id );
     74                                $ordered_menu_items = wp_get_nav_menu_items( (int) $menus[0] );
    7675                                $menu_item_data = (array) wp_setup_nav_menu_item( get_post( $menu_item_id ) );
    7776
    7877                                // Set up the data we need in one pass through the array of menu items.
     
    122121                                                $menu_item_data['menu_item_parent'] = $next_item_data['ID'];
    123122                                                update_post_meta( $menu_item_data['ID'], '_menu_item_menu_item_parent', (int) $menu_item_data['menu_item_parent'] );
    124123
    125                                                 wp_update_post($menu_item_data);
    126                                                 wp_update_post($next_item_data);
     124                                                wp_update_post( wp_slash( $menu_item_data ));
     125                                                wp_update_post( wp_slash( $next_item_data ) );
    127126                                        }
    128127
    129128                                // The item is last but still has a parent, so bubble up.
     
    145144                        $menus = isset( $_REQUEST['menu'] ) ? array( (int) $_REQUEST['menu'] ) : wp_get_object_terms( $menu_item_id, 'nav_menu', array( 'fields' => 'ids' ) );
    146145                        if ( ! is_wp_error( $menus ) && ! empty( $menus[0] ) ) {
    147146                                $menu_id = (int) $menus[0];
    148                                 $ordered_menu_items = wp_get_nav_menu_items( $menu_id );
     147                                $ordered_menu_items = wp_get_nav_menu_items( (int) $menu_id );
    149148                                $menu_item_data = (array) wp_setup_nav_menu_item( get_post( $menu_item_id ) );
    150149
    151150                                // Set up the data we need in one pass through the array of menu items.
     
    214213
    215214                                                        // Save changes.
    216215                                                        update_post_meta( $menu_item_data['ID'], '_menu_item_menu_item_parent', (int) $menu_item_data['menu_item_parent'] );
    217                                                         wp_update_post($menu_item_data);
    218                                                         wp_update_post($parent_data);
     216                                                        wp_update_post( wp_slash( $menu_item_data ) );
     217                                                        wp_update_post( wp_slash( $parent_data ) );
    219218                                                }
    220219
    221220                                        // Else this menu item is not a child of the previous.
     
    229228                                                // Just make it a child of the previous; keep the order.
    230229                                                $menu_item_data['menu_item_parent'] = (int) $orders_to_dbids[$dbids_to_orders[$menu_item_id] - 1];
    231230                                                update_post_meta( $menu_item_data['ID'], '_menu_item_menu_item_parent', (int) $menu_item_data['menu_item_parent'] );
    232                                                 wp_update_post($menu_item_data);
     231                                                wp_update_post( wp_slash( $menu_item_data ) );
    233232                                        }
    234233                                }
    235234                        }
     
    247246
    248247        case 'delete':
    249248                check_admin_referer( 'delete-nav_menu-' . $nav_menu_selected_id );
    250                 if ( is_nav_menu( $nav_menu_selected_id ) ) {
    251                         $deletion = wp_delete_nav_menu( $nav_menu_selected_id );
     249                if ( is_nav_menu( (int) $nav_menu_selected_id ) ) {
     250                        $deletion = wp_delete_nav_menu( (int) $nav_menu_selected_id );
    252251                } else {
    253252                        // Reset the selected menu.
    254253                        $nav_menu_selected_id = 0;
     
    267266        case 'delete_menus':
    268267                check_admin_referer( 'nav_menus_bulk_actions' );
    269268                foreach ( $_REQUEST['delete_menus'] as $menu_id_to_delete ) {
    270                         if ( ! is_nav_menu( $menu_id_to_delete ) )
     269                        if ( ! is_nav_menu( (int) $menu_id_to_delete ) )
    271270                                continue;
    272271
    273                         $deletion = wp_delete_nav_menu( $menu_id_to_delete );
     272                        $deletion = wp_delete_nav_menu( (int) $menu_id_to_delete );
    274273                        if ( is_wp_error( $deletion ) ) {
    275274                                $messages[] = '<div id="message" class="error notice is-dismissible"><p>' . $deletion->get_error_message() . '</p></div>';
    276275                                $deletion_error = true;
     
    304303                        $new_menu_title = trim( esc_html( $_POST['menu-name'] ) );
    305304
    306305                        if ( $new_menu_title ) {
    307                                 $_nav_menu_selected_id = wp_update_nav_menu_object( 0, array('menu-name' => $new_menu_title) );
     306                                $_nav_menu_selected_id = wp_update_nav_menu_object( 0, array('menu-name' => $new_menu_title) ); // WPCS: slashing OK (POST data).
    308307
    309308                                if ( is_wp_error( $_nav_menu_selected_id ) ) {
    310309                                        $messages[] = '<div id="message" class="error notice is-dismissible"><p>' . $_nav_menu_selected_id->get_error_message() . '</p></div>';
    311310                                } else {
    312                                         $_menu_object = wp_get_nav_menu_object( $_nav_menu_selected_id );
     311                                        $_menu_object = wp_get_nav_menu_object( (int) $_nav_menu_selected_id );
    313312                                        $nav_menu_selected_id = $_nav_menu_selected_id;
    314313                                        $nav_menu_selected_title = $_menu_object->name;
    315314                                        if ( isset( $_REQUEST['menu-item'] ) )
     
    344343                // Update existing menu.
    345344                } else {
    346345
    347                         $_menu_object = wp_get_nav_menu_object( $nav_menu_selected_id );
     346                        $_menu_object = wp_get_nav_menu_object( (int) $nav_menu_selected_id );
    348347
    349348                        $menu_title = trim( esc_html( $_POST['menu-name'] ) );
    350349                        if ( ! $menu_title ) {
     
    353352                        }
    354353
    355354                        if ( ! is_wp_error( $_menu_object ) ) {
    356                                 $_nav_menu_selected_id = wp_update_nav_menu_object( $nav_menu_selected_id, array( 'menu-name' => $menu_title ) );
     355                                $_nav_menu_selected_id = wp_update_nav_menu_object( $nav_menu_selected_id, array( 'menu-name' => $menu_title ) ); // WPCS: slashing OK (POST data).
    357356                                if ( is_wp_error( $_nav_menu_selected_id ) ) {
    358357                                        $_menu_object = $_nav_menu_selected_id;
    359358                                        $messages[] = '<div id="message" class="error notice is-dismissible"><p>' . $_nav_menu_selected_id->get_error_message() . '</p></div>';
    360359                                } else {
    361                                         $_menu_object = wp_get_nav_menu_object( $_nav_menu_selected_id );
     360                                        $_menu_object = wp_get_nav_menu_object( (int) $_nav_menu_selected_id );
    362361                                        $nav_menu_selected_title = $_menu_object->name;
    363362                                }
    364363                        }
     
    441440
    442441// Get recently edited nav menu.
    443442$recently_edited = absint( get_user_option( 'nav_menu_recently_edited' ) );
    444 if ( empty( $recently_edited ) && is_nav_menu( $nav_menu_selected_id ) )
     443if ( empty( $recently_edited ) && is_nav_menu( (int) $nav_menu_selected_id ) )
    445444        $recently_edited = $nav_menu_selected_id;
    446445
    447446// Use $recently_edited if none are selected.
    448 if ( empty( $nav_menu_selected_id ) && ! isset( $_GET['menu'] ) && is_nav_menu( $recently_edited ) )
     447if ( empty( $nav_menu_selected_id ) && ! isset( $_GET['menu'] ) && is_nav_menu( (int) $recently_edited ) )
    449448        $nav_menu_selected_id = $recently_edited;
    450449
    451450// On deletion of menu, if another menu exists, show it.
     
    461460}
    462461
    463462// Update the user's setting.
    464 if ( $nav_menu_selected_id != $recently_edited && is_nav_menu( $nav_menu_selected_id ) )
    465         update_user_meta( $current_user->ID, 'nav_menu_recently_edited', $nav_menu_selected_id );
     463if ( $nav_menu_selected_id != $recently_edited && is_nav_menu( (int) $nav_menu_selected_id ) )
     464        update_user_meta( $current_user->ID, 'nav_menu_recently_edited', (int) $nav_menu_selected_id );
    466465
    467466// If there's a menu, get its name.
    468 if ( ! $nav_menu_selected_title && is_nav_menu( $nav_menu_selected_id ) ) {
    469         $_menu_object = wp_get_nav_menu_object( $nav_menu_selected_id );
     467if ( ! $nav_menu_selected_title && is_nav_menu( (int) $nav_menu_selected_id ) ) {
     468        $_menu_object = wp_get_nav_menu_object( (int) $nav_menu_selected_id );
    470469        $nav_menu_selected_title = ! is_wp_error( $_menu_object ) ? $_menu_object->name : '';
    471470}
    472471
     
    491490$_wp_nav_menu_max_depth = 0;
    492491
    493492// Calling wp_get_nav_menu_to_edit generates $_wp_nav_menu_max_depth.
    494 if ( is_nav_menu( $nav_menu_selected_id ) ) {
    495         $menu_items = wp_get_nav_menu_items( $nav_menu_selected_id, array( 'post_status' => 'any' ) );
     493if ( is_nav_menu( (int) $nav_menu_selected_id ) ) {
     494        $menu_items = wp_get_nav_menu_items( (int) $nav_menu_selected_id, array( 'post_status' => 'any' ) );
    496495        $edit_markup = wp_get_nav_menu_to_edit( $nav_menu_selected_id );
    497496}
    498497
     
    820819                                                                                                <span class="theme-location-set"><?php
    821820                                                                                                        /* translators: %s: menu name */
    822821                                                                                                        printf( _x( '(Currently set to: %s)', 'menu location' ),
    823                                                                                                                 wp_get_nav_menu_object( $menu_locations[ $location ] )->name
     822                                                                                                                wp_get_nav_menu_object( $menu_locations[ $location ] )->name // WPCS: slashing OK (ID).
    824823                                                                                                        );
    825824                                                                                                ?></span>
    826825                                                                                        <?php endif; ?>
  • src/wp-admin/network/site-new.php

     
    129129        }
    130130
    131131        $wpdb->hide_errors();
    132         $id = wpmu_create_blog( $newdomain, $path, $title, $user_id, $meta, get_current_network_id() );
     132        $id = wpmu_create_blog( $newdomain, $path, $title, $user_id, $meta, get_current_network_id() ); // WPCS: slashing OK (POST data).
    133133        $wpdb->show_errors();
    134134        if ( ! is_wp_error( $id ) ) {
    135135                if ( ! is_super_admin( $user_id ) && !get_user_option( 'primary_blog', $user_id ) ) {
    136                         update_user_option( $user_id, 'primary_blog', $id, true );
     136                        update_user_option( $user_id, 'primary_blog', (int) $id, true );
    137137                }
    138138
    139139                wp_mail(
     
    159159                                get_site_option( 'admin_email' )
    160160                        )
    161161                );
    162                 wpmu_welcome_notification( $id, $user_id, $password, $title, array( 'public' => 1 ) );
     162                wpmu_welcome_notification( $id, $user_id, $password, $title, array( 'public' => 1 ) ); // WPCS: slashing OK (POST data).
    163163                wp_redirect( add_query_arg( array( 'update' => 'added', 'id' => $id ), 'site-new.php' ) );
    164164                exit;
    165165        } else {
  • src/wp-admin/post.php

     
    184184
    185185        // Update the thumbnail filename
    186186        $newmeta = wp_get_attachment_metadata( $post_id, true );
    187         $newmeta['thumb'] = $_POST['thumb'];
     187        $newmeta['thumb'] = wp_unslash( $_POST['thumb'] );
    188188
    189         wp_update_attachment_metadata( $post_id, $newmeta );
     189        wp_update_attachment_metadata( $post_id, wp_slash( $newmeta ) );
    190190
    191191case 'editpost':
    192192        check_admin_referer('update-post_' . $post_id);
  • src/wp-admin/theme-install.php

     
    177177                        $action = 'save_wporg_username_' . get_current_user_id();
    178178                        if ( isset( $_GET['_wpnonce'] ) && wp_verify_nonce( wp_unslash( $_GET['_wpnonce'] ), $action ) ) {
    179179                                $user = isset( $_GET['user'] ) ? wp_unslash( $_GET['user'] ) : get_user_option( 'wporg_favorites' );
    180                                 update_user_meta( get_current_user_id(), 'wporg_favorites', $user );
     180                                update_user_meta( get_current_user_id(), 'wporg_favorites', wp_slash( $user ) );
    181181                        } else {
    182182                                $user = get_user_option( 'wporg_favorites' );
    183183                        }
  • src/wp-admin/upload.php

     
    1717
    1818if ( isset( $_GET['mode'] ) && in_array( $_GET['mode'], $modes ) ) {
    1919        $mode = $_GET['mode'];
    20         update_user_option( get_current_user_id(), 'media_library_mode', $mode );
     20        update_user_option( get_current_user_id(), 'media_library_mode', $mode ); // WPCS: slashing OK.
    2121}
    2222
    2323if ( 'grid' === $mode ) {
  • src/wp-admin/user-edit.php

     
    9797                if ( is_multisite() && $wpdb->get_var( $wpdb->prepare( "SELECT user_login FROM {$wpdb->signups} WHERE user_login = %s", $current_user->user_login ) ) ) {
    9898                        $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->signups} SET user_email = %s WHERE user_login = %s", $user->user_email, $current_user->user_login ) );
    9999                }
    100                 wp_update_user( $user );
     100                wp_update_user( $user ); // WPCS: slashing OK (user_pass not used).
    101101                delete_user_meta( $current_user->ID, '_new_email' );
    102102                wp_redirect( add_query_arg( array( 'updated' => 'true' ), self_admin_url( 'profile.php' ) ) );
    103103                die();
  • src/wp-content/themes/twentyfourteen/inc/featured-content.php

     
    156156
    157157                if ( false === $featured_ids ) {
    158158                        $settings = self::get_setting();
    159                         $term     = get_term_by( 'name', $settings['tag-name'], 'post_tag' );
     159                        $term     = get_term_by( 'name', wp_slash( $settings['tag-name'] ), 'post_tag' );
    160160
    161161                        if ( $term ) {
    162162                                // Query for featured posts.
     
    504504                if ( empty( $input['tag-name'] ) ) {
    505505                        $output['tag-id'] = 0;
    506506                } else {
    507                         $term = get_term_by( 'name', $input['tag-name'], 'post_tag' );
     507                        $term = get_term_by( 'name', wp_slash( $input['tag-name'] ), 'post_tag' );
    508508
    509509                        if ( $term ) {
    510510                                $output['tag-id'] = $term->term_id;
    511511                        } else {
    512                                 $new_tag = wp_create_tag( $input['tag-name'] );
     512                                $new_tag = wp_create_tag( wp_slash( $input['tag-name'] ) );
    513513
    514514                                if ( ! is_wp_error( $new_tag ) && isset( $new_tag['term_id'] ) ) {
    515515                                        $output['tag-id'] = $new_tag['term_id'];
  • src/wp-includes/class-wp-admin-bar.php

     
    497497                        if ( $has_link ):
    498498                                ?><a class="ab-item"<?php echo $aria_attributes; ?> href="<?php echo esc_url( $node->href ) ?>"<?php
    499499                                        if ( ! empty( $node->meta['onclick'] ) ) :
    500                                                 ?> onclick="<?php echo esc_js( $node->meta['onclick'] ); ?>"<?php
     500                                                ?> onclick="<?php echo esc_attr( $node->meta['onclick'] ); ?>"<?php
    501501                                        endif;
    502502                                if ( ! empty( $node->meta['target'] ) ) :
    503503                                        ?> target="<?php echo esc_attr( $node->meta['target'] ); ?>"<?php
  • src/wp-includes/class-wp-customize-manager.php

     
    10331033                        );
    10341034                }
    10351035
    1036                 return get_posts( $args );
     1036                return get_posts( $args ); // WPCS: slashing OK (back-compat).
    10371037        }
    10381038
    10391039        /**
     
    13221322
    13231323                                                // Re-generate attachment metadata since it was previously generated for a different theme.
    13241324                                                $metadata = wp_generate_attachment_metadata( $attachment_post->ID, $attached_file );
    1325                                                 wp_update_attachment_metadata( $attachment_id, $metadata );
    1326                                                 update_post_meta( $attachment_id, '_starter_content_theme', $this->get_stylesheet() );
     1325                                                wp_update_attachment_metadata( $attachment_id, wp_slash( $metadata ) );
     1326                                                update_post_meta( $attachment_id, '_starter_content_theme', wp_slash( $this->get_stylesheet() ) );
    13271327                                        }
    13281328                                }
    13291329
     
    13531353                                                clearstatcache();
    13541354                                        }
    13551355
    1356                                         $attachment_id = media_handle_sideload( $file_array, 0, null, $attachment_post_data );
     1356                                        $attachment_id = media_handle_sideload( $file_array, 0, null, wp_slash( $attachment_post_data ) );
    13571357                                        if ( is_wp_error( $attachment_id ) ) {
    13581358                                                continue;
    13591359                                        }
    1360                                         update_post_meta( $attachment_id, '_starter_content_theme', $this->get_stylesheet() );
    1361                                         update_post_meta( $attachment_id, '_customize_draft_post_name', $attachment['post_name'] );
     1360                                        update_post_meta( $attachment_id, '_starter_content_theme', wp_slash( $this->get_stylesheet() ) );
     1361                                        update_post_meta( $attachment_id, '_customize_draft_post_name', $attachment['post_name'] ); // WPCS: slashing OK (slug).
    13621362                                }
    13631363
    13641364                                $attachment_ids[ $symbol ] = $attachment_id;
     
    29322932                /** This action is documented in wp-includes/post.php */
    29332933                do_action( 'wp_trash_post', $post_id );
    29342934
    2935                 add_post_meta( $post_id, '_wp_trash_meta_status', $post->post_status );
     2935                add_post_meta( $post_id, '_wp_trash_meta_status', $post->post_status ); // WPCS: slashing OK (slug).
    29362936                add_post_meta( $post_id, '_wp_trash_meta_time', time() );
    29372937
    29382938                $old_status = $post->post_status;
     
    30693069
    30703070                        if ( $can_override ) {
    30713071                                $lock = sprintf( '%s:%s', time(), get_current_user_id() );
    3072                                 update_post_meta( $changeset_post_id, '_edit_lock', $lock );
     3072                                update_post_meta( $changeset_post_id, '_edit_lock', $lock ); // WPCS: slashing OK.
    30733073                        } else {
    30743074                                $this->refresh_changeset_lock( $changeset_post_id );
    30753075                        }
     
    30953095                        $current_user_id = get_current_user_id();
    30963096                        if ( $user_id === $current_user_id ) {
    30973097                                $lock = sprintf( '%s:%s', time(), $user_id );
    3098                                 update_post_meta( $changeset_post_id, '_edit_lock', $lock );
     3098                                update_post_meta( $changeset_post_id, '_edit_lock', $lock ); // WPCS: slashing OK.
    30993099                        }
    31003100                }
    31013101        }
  • src/wp-includes/class-wp-customize-nav-menus.php

     
    270270                }
    271271
    272272                $s = sanitize_text_field( wp_unslash( $_POST['search'] ) );
    273                 $items = $this->search_available_items_query( array( 'pagenum' => $p, 's' => $s ) );
     273                $items = $this->search_available_items_query( array( 'pagenum' => $p, 's' => wp_slash( $s ) ) );
    274274
    275275                if ( empty( $items ) ) {
    276276                        wp_send_json_error( array( 'message' => __( 'No results found.' ) ) );
     
    658658                        ) ) );
    659659
    660660                        // Add the menu contents.
    661                         $menu_items = (array) wp_get_nav_menu_items( $menu_id );
     661                        $menu_items = (array) wp_get_nav_menu_items( (int) $menu_id );
    662662
    663663                        foreach ( array_values( $menu_items ) as $i => $item ) {
    664664
     
    14161416                }
    14171417
    14181418                ob_start();
    1419                 wp_nav_menu( $nav_menu_args );
     1419                wp_nav_menu( wp_slash( $nav_menu_args ) );
    14201420                $content = ob_get_clean();
    14211421
    14221422                return $content;
  • src/wp-includes/class-wp-embed.php

     
    271271
    272272                if ( $post_ID ) {
    273273                        if ( $html ) {
    274                                 update_post_meta( $post_ID, $cachekey, $html );
    275                                 update_post_meta( $post_ID, $cachekey_time, time() );
     274                                update_post_meta( $post_ID, $cachekey, wp_slash( $html ) ); // WPCS: slashing OK (hash).
     275                                update_post_meta( $post_ID, $cachekey_time, time() ); // WPCS: slashing OK (hash).
    276276                        } elseif ( ! $cache ) {
    277                                 update_post_meta( $post_ID, $cachekey, '{{unknown}}' );
     277                                update_post_meta( $post_ID, $cachekey, '{{unknown}}' ); // WPCS: slashing OK (hash).
    278278                        }
    279279                } else {
    280280                        $has_kses = false !== has_filter( 'content_save_pre', 'wp_filter_post_kses' );
     
    340340
    341341                foreach ( $post_metas as $post_meta_key ) {
    342342                        if ( '_oembed_' == substr( $post_meta_key, 0, 8 ) )
    343                                 delete_post_meta( $post_ID, $post_meta_key );
     343                                delete_post_meta( $post_ID, $post_meta_key ); // WPCS: slashing OK (hash).
    344344                }
    345345        }
    346346
  • src/wp-includes/class-wp-query.php

     
    12511251                $search = '';
    12521252
    12531253                // added slashes screw with quote grouping when done early, so done later
     1254                // expected_slashed: s.
    12541255                $q['s'] = stripslashes( $q['s'] );
    12551256                if ( empty( $_GET['s'] ) && $this->is_main_query() )
    12561257                        $q['s'] = urldecode( $q['s'] );
     
    18531854                }
    18541855
    18551856                if ( '' !== $q['title'] ) {
     1857                        // expected_slashed: title.
    18561858                        $where .= $wpdb->prepare( " AND {$wpdb->posts}.post_title = %s", stripslashes( $q['title'] ) );
    18571859                }
    18581860
     
    32643266                                                if ( 'term_id' == $query['field'] ) {
    32653267                                                        $term = get_term( reset( $query['terms'] ), $matched_taxonomy );
    32663268                                                } else {
    3267                                                         $term = get_term_by( $query['field'], reset( $query['terms'] ), $matched_taxonomy );
     3269                                                        $term = get_term_by( $query['field'], wp_slash( reset( $query['terms'] ) ), $matched_taxonomy );
    32683270                                                }
    32693271                                        }
    32703272                                }
  • src/wp-includes/class-wp-term-query.php

     
    473473                ) {
    474474                        $names = (array) $args['name'];
    475475                        foreach ( $names as &$_name ) {
    476                                 // `sanitize_term_field()` returns slashed data.
    477                                 $_name = stripslashes( sanitize_term_field( 'name', $_name, 0, reset( $taxonomies ), 'db' ) );
     476                                // `sanitize_term_field()` expects and returns slashed data.
     477                                $_name = stripslashes( sanitize_term_field( 'name', wp_slash( $_name ), 0, reset( $taxonomies ), 'db' ) );
    478478                        }
    479479
    480480                        $this->sql_clauses['where']['name'] = "t.name IN ('" . implode( "', '", array_map( 'esc_sql', $names ) ) . "')";
  • src/wp-includes/class-wp-user-meta-session-tokens.php

     
    9393         */
    9494        protected function update_sessions( $sessions ) {
    9595                if ( $sessions ) {
    96                         update_user_meta( $this->user_id, 'session_tokens', $sessions );
     96                        update_user_meta( $this->user_id, 'session_tokens', wp_slash( $sessions ) );
    9797                } else {
    9898                        delete_user_meta( $this->user_id, 'session_tokens' );
    9999                }
  • src/wp-includes/class-wp-user.php

     
    519519                }
    520520
    521521                $this->caps[$role] = true;
    522                 update_user_meta( $this->ID, $this->cap_key, $this->caps );
     522                update_user_meta( $this->ID, $this->cap_key, $this->caps ); // WPCS: slashing OK.
    523523                $this->get_role_caps();
    524524                $this->update_user_level_from_caps();
    525525
     
    545545                if ( !in_array($role, $this->roles) )
    546546                        return;
    547547                unset( $this->caps[$role] );
    548                 update_user_meta( $this->ID, $this->cap_key, $this->caps );
     548                update_user_meta( $this->ID, $this->cap_key, $this->caps ); // WPCS: slashing OK.
    549549                $this->get_role_caps();
    550550                $this->update_user_level_from_caps();
    551551
     
    585585                } else {
    586586                        $this->roles = false;
    587587                }
    588                 update_user_meta( $this->ID, $this->cap_key, $this->caps );
     588                update_user_meta( $this->ID, $this->cap_key, $this->caps ); // WPCS: slashing OK.
    589589                $this->get_role_caps();
    590590                $this->update_user_level_from_caps();
    591591
     
    643643        public function update_user_level_from_caps() {
    644644                global $wpdb;
    645645                $this->user_level = array_reduce( array_keys( $this->allcaps ), array( $this, 'level_reduction' ), 0 );
    646                 update_user_meta( $this->ID, $wpdb->get_blog_prefix() . 'user_level', $this->user_level );
     646                update_user_meta( $this->ID, $wpdb->get_blog_prefix() . 'user_level', $this->user_level ); // WPCS: slashing OK.
    647647        }
    648648
    649649        /**
     
    656656         */
    657657        public function add_cap( $cap, $grant = true ) {
    658658                $this->caps[$cap] = $grant;
    659                 update_user_meta( $this->ID, $this->cap_key, $this->caps );
     659                update_user_meta( $this->ID, $this->cap_key, $this->caps ); // WPCS: slashing OK.
    660660                $this->get_role_caps();
    661661                $this->update_user_level_from_caps();
    662662        }
     
    673673                        return;
    674674                }
    675675                unset( $this->caps[ $cap ] );
    676                 update_user_meta( $this->ID, $this->cap_key, $this->caps );
     676                update_user_meta( $this->ID, $this->cap_key, $this->caps ); // WPCS: slashing OK.
    677677                $this->get_role_caps();
    678678                $this->update_user_level_from_caps();
    679679        }
     
    688688        public function remove_all_caps() {
    689689                global $wpdb;
    690690                $this->caps = array();
    691                 delete_user_meta( $this->ID, $this->cap_key );
    692                 delete_user_meta( $this->ID, $wpdb->get_blog_prefix() . 'user_level' );
     691                delete_user_meta( $this->ID, $this->cap_key ); // WPCS: slashing OK.
     692                delete_user_meta( $this->ID, $wpdb->get_blog_prefix() . 'user_level' ); // WPCS: slashing OK.
    693693                $this->get_role_caps();
    694694        }
    695695
  • src/wp-includes/class-wp-xmlrpc-server.php

     
    392392                                        delete_metadata_by_mid( 'post', $meta['id'] );
    393393                                }
    394394                        } elseif ( current_user_can( 'add_post_meta', $post_id, wp_unslash( $meta['key'] ) ) ) {
    395                                 add_post_meta( $post_id, $meta['key'], $meta['value'] );
     395                                add_post_meta( $post_id, $meta['key'], $meta['value'] ); // WPCS: slashing OK (expected slashed).
    396396                        }
    397397                }
    398398        }
     
    454454                                        delete_metadata_by_mid( 'term', $meta['id'] );
    455455                                }
    456456                        } elseif ( current_user_can( 'add_term_meta', $term_id ) ) {
    457                                 add_term_meta( $term_id, $meta['key'], $meta['value'] );
     457                                add_term_meta( $term_id, $meta['key'], $meta['value'] ); // WPCS: slashing OK (expected slashed).
    458458                        }
    459459                }
    460460        }
     
    15381538                                                if ( in_array( $term_name, $ambiguous_terms ) )
    15391539                                                        return new IXR_Error( 401, __( 'Ambiguous term name used in a hierarchical taxonomy. Please use term ID instead.' ) );
    15401540
    1541                                                 $term = get_term_by( 'name', $term_name, $taxonomy );
     1541                                                $term = get_term_by( 'name', $term_name, $taxonomy ); // WPCS: slashing OK ($this->escape()).
    15421542
    15431543                                                if ( ! $term ) {
    15441544                                                        // Term doesn't exist, so check that the user is allowed to create new terms.
     
    15461546                                                                return new IXR_Error( 401, __( 'Sorry, you are not allowed to add a term to one of the given taxonomies.' ) );
    15471547
    15481548                                                        // Create the new term.
    1549                                                         $term_info = wp_insert_term( $term_name, $taxonomy );
     1549                                                        $term_info = wp_insert_term( $term_name, $taxonomy ); // WPCS: slashing OK ($this->escape()).
    15501550                                                        if ( is_wp_error( $term_info ) )
    15511551                                                                return new IXR_Error( 500, $term_info->get_error_message() );
    15521552
     
    15871587                 */
    15881588                $post_data = apply_filters( 'xmlrpc_wp_insert_post_data', $post_data, $content_struct );
    15891589
    1590                 $post_ID = $update ? wp_update_post( $post_data, true ) : wp_insert_post( $post_data, true );
     1590                $post_ID = $update ? wp_update_post( $post_data, true ) : wp_insert_post( $post_data, true ); // WPCS: slashing OK ($this->escape()).
    15911591                if ( is_wp_error( $post_ID ) )
    15921592                        return new IXR_Error( 500, $post_ID->get_error_message() );
    15931593
     
    18881888                        $query['s'] = $filter['s'];
    18891889                }
    18901890
    1891                 $posts_list = wp_get_recent_posts( $query );
     1891                $posts_list = wp_get_recent_posts( $query ); // WPCS: slashing OK ($this->escape()).
    18921892
    18931893                if ( ! $posts_list )
    18941894                        return array();
     
    19811981                if ( isset( $content_struct['slug'] ) )
    19821982                        $term_data['slug'] = $content_struct['slug'];
    19831983
    1984                 $term = wp_insert_term( $term_data['name'] , $taxonomy['name'] , $term_data );
     1984                $term = wp_insert_term( $term_data['name'] , $taxonomy['name'] , $term_data ); // WPCS: slashing OK ($this->escape()).
    19851985
    19861986                if ( is_wp_error( $term ) )
    19871987                        return new IXR_Error( 500, $term->get_error_message() );
     
    20852085                if ( isset( $content_struct['slug'] ) )
    20862086                        $term_data['slug'] = $content_struct['slug'];
    20872087
    2088                 $term = wp_update_term( $term_id , $taxonomy['name'] , $term_data );
     2088                $term = wp_update_term( $term_id , $taxonomy['name'] , $term_data ); // WPCS: slashing OK ($this->escape()).
    20892089
    20902090                if ( is_wp_error( $term ) )
    20912091                        return new IXR_Error( 500, $term->get_error_message() );
     
    27022702                if ( isset( $content_struct['bio'] ) )
    27032703                        $user_data['description'] = $content_struct['bio'];
    27042704
    2705                 $result = wp_update_user( $user_data );
     2705                $result = wp_update_user( $user_data ); // WPCS: slashing OK ($this->>escape(); user_pass not used).
    27062706
    27072707                if ( is_wp_error( $result ) )
    27082708                        return new IXR_Error( 500, $result->get_error_message() );
     
    31623162                        'category_description'  => $category['description']
    31633163                );
    31643164
    3165                 $cat_id = wp_insert_category($new_category, true);
     3165                $cat_id = wp_insert_category($new_category, true); // WPCS: slashing OK ($this->escape()).
    31663166                if ( is_wp_error( $cat_id ) ) {
    31673167                        if ( 'term_exists' == $cat_id->get_error_code() )
    31683168                                return (int) $cat_id->get_error_data();
     
    35503550                // We've got all the data -- post it:
    35513551                $comment = compact('comment_ID', 'comment_content', 'comment_approved', 'comment_date', 'comment_date_gmt', 'comment_author', 'comment_author_email', 'comment_author_url');
    35523552
    3553                 $result = wp_update_comment($comment);
     3553                $result = wp_update_comment($comment); // WPCS: slashing OK ($this->escape()).
    35543554                if ( is_wp_error( $result ) )
    35553555                        return new IXR_Error(500, $result->get_error_message());
    35563556
     
    36803680                /** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
    36813681                do_action( 'xmlrpc_call', 'wp.newComment' );
    36823682
    3683                 $comment_ID = wp_new_comment( $comment, true );
     3683                $comment_ID = wp_new_comment( $comment, true ); // WPCS: slashing OK ($this->escape()).
    36843684                if ( is_wp_error( $comment_ID ) ) {
    36853685                        return new IXR_Error( 403, $comment_ID->get_error_message() );
    36863686                }
     
    46154615                /** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
    46164616                do_action( 'xmlrpc_call', 'blogger.getRecentPosts' );
    46174617
    4618                 $posts_list = wp_get_recent_posts( $query );
     4618                $posts_list = wp_get_recent_posts( $query ); // WPCS: slashing OK ($this->escape()).
    46194619
    46204620                if ( !$posts_list ) {
    46214621                        $this->error = new IXR_Error(500, __('Either there are no posts, or something went wrong.'));
     
    47194719
    47204720                $post_data = compact('post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_category', 'post_status');
    47214721
    4722                 $post_ID = wp_insert_post($post_data);
     4722                $post_ID = wp_insert_post($post_data); // WPCS: slashing OK ($this->escape()).
    47234723                if ( is_wp_error( $post_ID ) )
    47244724                        return new IXR_Error(500, $post_ID->get_error_message());
    47254725
     
    47994799                $postdata['post_excerpt'] = $actual_post['post_excerpt'];
    48004800                $postdata['post_status'] = $publish ? 'publish' : 'draft';
    48014801
    4802                 $result = wp_update_post( $postdata );
     4802                $result = wp_update_post( $postdata ); // WPCS: slashing OK ($this->escape()).
    48034803
    48044804                if ( ! $result ) {
    48054805                        return new IXR_Error(500, __('For some strange yet very annoying reason, this post could not be edited.'));
     
    51785178                if ( isset( $content_struct['wp_post_format'] ) )
    51795179                        set_post_format( $post_ID, $content_struct['wp_post_format'] );
    51805180
    5181                 $post_ID = wp_insert_post( $postdata, true );
     5181                $post_ID = wp_insert_post( $postdata, true ); // WPCS: slashing OK ($this->escape()).
    51825182                if ( is_wp_error( $post_ID ) )
    51835183                        return new IXR_Error(500, $post_ID->get_error_message());
    51845184
     
    52205220                                }
    52215221                        }
    52225222                        if ( ! $found )
    5223                                 add_post_meta( $post_ID, 'enclosure', $encstring );
     5223                                add_post_meta( $post_ID, 'enclosure', $encstring ); // WPCS: slashing OK ($this->escape()).
    52245224                }
    52255225        }
    52265226
     
    54995499                // We've got all the data -- post it.
    55005500                $newpost = compact('ID', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt', 'comment_status', 'ping_status', 'edit_date', 'post_date', 'post_date_gmt', 'to_ping', 'post_name', 'post_password', 'post_parent', 'menu_order', 'post_author', 'tags_input', 'page_template');
    55015501
    5502                 $result = wp_update_post($newpost, true);
     5502                $result = wp_update_post($newpost, true); // WPCS: slashing OK ($this->escape()).
    55035503                if ( is_wp_error( $result ) )
    55045504                        return new IXR_Error(500, $result->get_error_message());
    55055505
     
    57205720                /** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
    57215721                do_action( 'xmlrpc_call', 'metaWeblog.getRecentPosts' );
    57225722
    5723                 $posts_list = wp_get_recent_posts( $query );
     5723                $posts_list = wp_get_recent_posts( $query ); // WPCS: slashing OK ($this->escape()).
    57245724
    57255725                if ( !$posts_list )
    57265726                        return array();
     
    59395939                );
    59405940
    59415941                // Save the data
    5942                 $id = wp_insert_attachment( $attachment, $upload[ 'file' ], $post_id );
    5943                 wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $upload['file'] ) );
     5942                $id = wp_insert_attachment( $attachment, $upload[ 'file' ], $post_id ); // WPCS: slashing OK ($this->escape()).
     5943                wp_update_attachment_metadata( $id, wp_slash( wp_generate_attachment_metadata( $id, $upload['file'] ) ) );
    59445944
    59455945                /**
    59465946                 * Fires after a new attachment has been added via the XML-RPC MovableType API.
     
    59975997                /** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
    59985998                do_action( 'xmlrpc_call', 'mt.getRecentPostTitles' );
    59995999
    6000                 $posts_list = wp_get_recent_posts( $query );
     6000                $posts_list = wp_get_recent_posts( $query ); // WPCS: slashing OK ($this->escape()).
    60016001
    60026002                if ( !$posts_list ) {
    60036003                        $this->error = new IXR_Error(500, __('Either there are no posts, or something went wrong.'));
     
    61596159                        $catids[] = $cat['categoryId'];
    61606160                }
    61616161
    6162                 wp_set_post_categories($post_ID, $catids);
     6162                wp_set_post_categories($post_ID, $catids); // WPCS: slashing OK (IDs).
    61636163
    61646164                return true;
    61656165        }
     
    62806280                $postdata['post_category'] = $cats;
    62816281                $this->escape($postdata);
    62826282
    6283                 return wp_update_post( $postdata );
     6283                return wp_update_post( $postdata ); // WPCS: slashing OK ($this->escape()).
    62846284        }
    62856285
    62866286        /* PingBack functions
     
    64856485                        'comment_content', 'comment_type', 'remote_source', 'remote_source_original'
    64866486                );
    64876487
    6488                 $comment_ID = wp_new_comment($commentdata);
     6488                $comment_ID = wp_new_comment($commentdata); // WPCS: slashing OK ($this->escape()).
    64896489
    64906490                if ( is_wp_error( $comment_ID ) ) {
    64916491                        return $this->pingback_error( 0, $comment_ID->get_error_message() );
  • src/wp-includes/comment.php

     
    117117                                $ok_to_comment = $wpdb->get_var( $wpdb->prepare( "SELECT comment_approved FROM $wpdb->comments WHERE user_id = %d AND comment_approved = '1' LIMIT 1", $comment_user->ID ) );
    118118                        } else {
    119119                                // expected_slashed ($author, $email)
    120                                 $ok_to_comment = $wpdb->get_var( $wpdb->prepare( "SELECT comment_approved FROM $wpdb->comments WHERE comment_author = %s AND comment_author_email = %s and comment_approved = '1' LIMIT 1", $author, $email ) );
     120                                $ok_to_comment = $wpdb->get_var( $wpdb->prepare( "SELECT comment_approved FROM $wpdb->comments WHERE comment_author = %s AND comment_author_email = %s and comment_approved = '1' LIMIT 1", wp_unslash( $author ), wp_unslash( $email ) ) );
    121121                        }
    122122                        if ( ( 1 == $ok_to_comment ) &&
    123123                                ( empty($mod_keys) || false === strpos( $email, $mod_keys) ) )
     
    13761376        if ( wp_set_comment_status( $comment, 'trash' ) ) {
    13771377                delete_comment_meta( $comment->comment_ID, '_wp_trash_meta_status' );
    13781378                delete_comment_meta( $comment->comment_ID, '_wp_trash_meta_time' );
    1379                 add_comment_meta( $comment->comment_ID, '_wp_trash_meta_status', $comment->comment_approved );
     1379                add_comment_meta( $comment->comment_ID, '_wp_trash_meta_status', $comment->comment_approved ); // WPCS: slashing OK.
    13801380                add_comment_meta( $comment->comment_ID, '_wp_trash_meta_time', time() );
    13811381
    13821382                /**
     
    14711471        if ( wp_set_comment_status( $comment, 'spam' ) ) {
    14721472                delete_comment_meta( $comment->comment_ID, '_wp_trash_meta_status' );
    14731473                delete_comment_meta( $comment->comment_ID, '_wp_trash_meta_time' );
    1474                 add_comment_meta( $comment->comment_ID, '_wp_trash_meta_status', $comment->comment_approved );
     1474                add_comment_meta( $comment->comment_ID, '_wp_trash_meta_status', $comment->comment_approved ); // WPCS: slashing OK.
    14751475                add_comment_meta( $comment->comment_ID, '_wp_trash_meta_time', time() );
    14761476                /**
    14771477                 * Fires immediately after a comment is marked as Spam.
     
    17401740 */
    17411741function wp_insert_comment( $commentdata ) {
    17421742        global $wpdb;
     1743        // expected_slashed: $commentdata.
    17431744        $data = wp_unslash( $commentdata );
    17441745
    17451746        $comment_author       = ! isset( $data['comment_author'] )       ? '' : $data['comment_author'];
     
    21922193        $commentarr = wp_filter_comment( $commentarr );
    21932194
    21942195        // Now extract the merged array.
     2196        // expected_slashed: $commentarr.
    21952197        $data = wp_unslash( $commentarr );
    21962198
    21972199        /**
     
    26682670                        $client->debug = false;
    26692671
    26702672                        if ( $client->query('pingback.ping', $pagelinkedfrom, $pagelinkedto) || ( isset($client->error->code) && 48 == $client->error->code ) ) // Already registered
    2671                                 add_ping( $post, $pagelinkedto );
     2673                                add_ping( $post, wp_slash( $pagelinkedto ) ); // TODO is slashing really needed here?
    26722674                }
    26732675        }
    26742676}
     
    30473049                 * @param int $comment_post_ID Post ID.
    30483050                 */
    30493051                do_action( 'comment_on_draft', $comment_post_ID );
    3050                
     3052
    30513053                if ( current_user_can( 'read_post', $comment_post_ID ) ) {
    30523054                        return new WP_Error( 'comment_on_draft', __( 'Sorry, comments are not allowed for this item.' ), 403 );
    30533055                } else {
  • src/wp-includes/customize/class-wp-customize-nav-menu-setting.php

     
    170170
    171171                        // Note that a term_id of less than one indicates a nav_menu not yet inserted.
    172172                        if ( $this->term_id > 0 ) {
    173                                 $term = wp_get_nav_menu_object( $this->term_id );
     173                                $term = wp_get_nav_menu_object( (int) $this->term_id );
    174174
    175175                                if ( $term ) {
    176176                                        $value = wp_array_slice_assoc( (array) $term, array_keys( $this->default ) );
     
    487487                        if ( $is_placeholder ) {
    488488                                $this->update_status = 'deleted';
    489489                        } else {
    490                                 $r = wp_delete_nav_menu( $this->term_id );
     490                                $r = wp_delete_nav_menu( (int) $this->term_id );
    491491
    492492                                if ( is_wp_error( $r ) ) {
    493493                                        $this->update_status = 'error';
  • src/wp-includes/deprecated.php

     
    23232323        $meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key);
    23242324
    23252325        /** @todo Might need fix because usermeta data is assumed to be already escaped */
     2326        // expected_slashed: $meta_value.
    23262327        if ( is_string($meta_value) )
    23272328                $meta_value = stripslashes($meta_value);
    23282329        $meta_value = maybe_serialize($meta_value);
  • src/wp-includes/formatting.php

     
    27292729 */
    27302730function wp_rel_nofollow( $text ) {
    27312731        // This is a pre save filter, so text is already escaped.
     2732        // expected_slashed: $text.
    27322733        $text = stripslashes($text);
    27332734        $text = preg_replace_callback('|<a (.+?)>|i', 'wp_rel_nofollow_callback', $text);
    27342735        return wp_slash( $text );
  • src/wp-includes/functions.php

     
    625625                                }
    626626
    627627                                if ( in_array( substr( $type, 0, strpos( $type, "/" ) ), $allowed_types ) ) {
    628                                         add_post_meta( $post_ID, 'enclosure', "$url\n$len\n$mime\n" );
     628                                        add_post_meta( $post_ID, 'enclosure', wp_slash( "$url\n$len\n$mime\n" ) );
    629629                                }
    630630                        }
    631631                }
  • src/wp-includes/link-template.php

     
    10241024function get_search_link( $query = '' ) {
    10251025        global $wp_rewrite;
    10261026
     1027        // expected_slashed: $query.
    10271028        if ( empty($query) )
    10281029                $search = get_search_query( false );
    10291030        else
     
    19251926                ) );
    19261927        }
    19271928
    1928         return get_posts( $query_args );
     1929        return get_posts( $query_args ); // WPCS: slashing OK (s, title not used).
    19291930}
    19301931
    19311932/**
  • src/wp-includes/media-template.php

     
    699699
    700700                                        foreach ( $sizes as $value => $name ) : ?>
    701701                                                <#
    702                                                 var size = data.sizes['<?php echo esc_js( $value ); ?>'];
     702                                                var size = data.sizes[<?php echo wp_json_encode( $value ); ?>];
    703703                                                if ( size ) { #>
    704704                                                        <option value="<?php echo esc_attr( $value ); ?>" <?php selected( $value, 'full' ); ?>>
    705705                                                                <?php echo esc_html( $name ); ?> &ndash; {{ size.width }} &times; {{ size.height }}
     
    948948
    949949                                                                        foreach ( $sizes as $value => $name ) : ?>
    950950                                                                                <#
    951                                                                                 var size = data.sizes['<?php echo esc_js( $value ); ?>'];
     951                                                                                var size = data.sizes[<?php echo wp_json_encode( $value ); ?>];
    952952                                                                                if ( size ) { #>
    953953                                                                                        <option value="<?php echo esc_attr( $value ); ?>">
    954954                                                                                                <?php echo esc_html( $name ); ?> &ndash; {{ size.width }} &times; {{ size.height }}
  • src/wp-includes/media.php

     
    18701870        wp_enqueue_style( 'wp-mediaelement' );
    18711871        wp_enqueue_script( 'wp-playlist' );
    18721872?>
    1873 <!--[if lt IE 9]><script>document.createElement('<?php echo esc_js( $type ) ?>');</script><![endif]-->
     1873<!--[if lt IE 9]><script>document.createElement(<?php echo wp_json_encode( $type ); ?>);</script><![endif]-->
    18741874<?php
    18751875        add_action( 'wp_footer', 'wp_underscore_playlist_templates', 0 );
    18761876        add_action( 'admin_footer', 'wp_underscore_playlist_templates', 0 );
     
    19761976
    19771977        if ( ! empty( $atts['include'] ) ) {
    19781978                $args['include'] = $atts['include'];
    1979                 $_attachments = get_posts( $args );
     1979                $_attachments = get_posts( $args ); // WPCS: slashing OK (s, title not used).
    19801980
    19811981                $attachments = array();
    19821982                foreach ( $_attachments as $key => $val ) {
     
    19851985        } elseif ( ! empty( $atts['exclude'] ) ) {
    19861986                $args['post_parent'] = $id;
    19871987                $args['exclude'] = $atts['exclude'];
    1988                 $attachments = get_children( $args );
     1988                $attachments = get_children( $args ); // WPCS: slashing OK (s, title not used).
    19891989        } else {
    19901990                $args['post_parent'] = $id;
    1991                 $attachments = get_children( $args );
     1991                $attachments = get_children( $args ); // WPCS: slashing OK (s, title not used).
    19921992        }
    19931993
    19941994        if ( empty( $attachments ) ) {
     
    36953695         */
    36963696        $args = apply_filters( 'get_attached_media_args', $args, $type, $post );
    36973697
    3698         $children = get_children( $args );
     3698        $children = get_children( $args ); // WPCS: slashing OK (back-compat).
    36993699
    37003700        /**
    37013701         * Filters the list of media attached to the given post.
     
    38913891                $regeneration_lock = 'wp_generating_att_' . $attachment_id;
    38923892                if ( ! array_key_exists( '_wp_attachment_metadata', $_meta ) && ! get_transient( $regeneration_lock ) ) {
    38933893                        set_transient( $regeneration_lock, $file );
    3894                         wp_update_attachment_metadata( $attachment_id, wp_generate_attachment_metadata( $attachment_id, $file ) );
     3894                        wp_update_attachment_metadata( $attachment_id, wp_slash( wp_generate_attachment_metadata( $attachment_id, $file ) ) );
    38953895                        delete_transient( $regeneration_lock );
    38963896                }
    38973897        }
  • src/wp-includes/meta.php

     
    4646
    4747        $column = sanitize_key($meta_type . '_id');
    4848
    49         // expected_slashed ($meta_key)
     49        // expected_slashed ($meta_key, $meta_value)
    5050        $meta_key = wp_unslash($meta_key);
    5151        $meta_value = wp_unslash($meta_value);
    5252        $meta_value = sanitize_meta( $meta_key, $meta_value, $meta_type );
     
    160160        $column = sanitize_key($meta_type . '_id');
    161161        $id_column = 'user' == $meta_type ? 'umeta_id' : 'meta_id';
    162162
    163         // expected_slashed ($meta_key)
     163        // expected_slashed ($meta_key, $meta_value)
    164164        $raw_meta_key = $meta_key;
    165165        $meta_key = wp_unslash($meta_key);
    166166        $passed_value = $meta_value;
     
    323323
    324324        $type_column = sanitize_key($meta_type . '_id');
    325325        $id_column = 'user' == $meta_type ? 'umeta_id' : 'meta_id';
    326         // expected_slashed ($meta_key)
     326        // expected_slashed ($meta_key, $meta_value)
    327327        $meta_key = wp_unslash($meta_key);
    328328        $meta_value = wp_unslash($meta_value);
    329329
  • src/wp-includes/ms-functions.php

     
    5050        $first_blog = current($blogs);
    5151        if ( false !== $primary_blog ) {
    5252                if ( ! isset( $blogs[ $primary_blog ] ) ) {
    53                         update_user_meta( $user_id, 'primary_blog', $first_blog->userblog_id );
     53                        update_user_meta( $user_id, 'primary_blog', (int) $first_blog->userblog_id );
    5454                        $primary = get_site( $first_blog->userblog_id );
    5555                } else {
    5656                        $primary = get_site( $primary_blog );
     
    6060                $result = add_user_to_blog( $first_blog->userblog_id, $user_id, 'subscriber' );
    6161
    6262                if ( ! is_wp_error( $result ) ) {
    63                         update_user_meta( $user_id, 'primary_blog', $first_blog->userblog_id );
     63                        update_user_meta( $user_id, 'primary_blog', (int) $first_blog->userblog_id );
    6464                        $primary = $first_blog;
    6565                }
    6666        }
     
    7676                                if ( is_object( $details ) && $details->archived == 0 && $details->spam == 0 && $details->deleted == 0 ) {
    7777                                        $ret = $blog;
    7878                                        if ( get_user_meta( $user_id , 'primary_blog', true ) != $blog_id )
    79                                                 update_user_meta( $user_id, 'primary_blog', $blog_id );
     79                                                update_user_meta( $user_id, 'primary_blog', (int) $blog_id );
    8080                                        if ( !get_user_meta($user_id , 'source_domain', true) )
    81                                                 update_user_meta( $user_id, 'source_domain', $blog->domain );
     81                                                update_user_meta( $user_id, 'source_domain', wp_slash( $blog->domain ) );
    8282                                        break;
    8383                                }
    8484                        }
     
    185185        }
    186186
    187187        if ( !get_user_meta($user_id, 'primary_blog', true) ) {
    188                 update_user_meta($user_id, 'primary_blog', $blog_id);
     188                update_user_meta($user_id, 'primary_blog', (int) $blog_id);
    189189                $site = get_site( $blog_id );
    190                 update_user_meta( $user_id, 'source_domain', $site->domain );
     190                update_user_meta( $user_id, 'source_domain', wp_slash( $site->domain ) );
    191191        }
    192192
    193193        $user->set_role($role);
     
    255255                        break;
    256256                }
    257257
    258                 update_user_meta($user_id, 'primary_blog', $new_id);
    259                 update_user_meta($user_id, 'source_domain', $new_domain);
     258                update_user_meta($user_id, 'primary_blog', (int) $new_id);
     259                update_user_meta($user_id, 'source_domain', wp_slash( $new_domain ));
    260260        }
    261261
    262262        // wp_revoke_user($user_id);
     
    636636         */
    637637        $blogname = apply_filters( 'newblogname', $blogname );
    638638
     639        // expected_slashed: $blog_title.
    639640        $blog_title = wp_unslash(  $blog_title );
    640641
    641642        if ( empty( $blog_title ) )
     
    10881089                return array( 'user_id' => $user_id, 'password' => $password, 'meta' => $meta );
    10891090        }
    10901091
    1091         $blog_id = wpmu_create_blog( $signup->domain, $signup->path, $signup->title, $user_id, $meta, get_current_network_id() );
     1092        $blog_id = wpmu_create_blog( $signup->domain, $signup->path, wp_slash( $signup->title ), $user_id, $meta, get_current_network_id() );
    10921093
    10931094        // TODO: What to do if we create a user but cannot create a blog?
    10941095        if ( is_wp_error($blog_id) ) {
     
    14751476        else
    14761477                update_option( 'upload_path', get_blog_option( get_network()->site_id, 'upload_path' ) );
    14771478
     1479        // expected_slashed: $blog_title.
    14781480        update_option( 'blogname', wp_unslash( $blog_title ) );
    14791481        update_option( 'admin_email', '' );
    14801482
     
    16071609        /* translators: New site notification email subject. 1: Network name, 2: New site name */
    16081610        $subject = __( 'New %1$s Site: %2$s' );
    16091611
     1612        // expected_slashed: $title.
    16101613        /**
    16111614         * Filters the subject of the welcome email after site activation.
    16121615         *
     
    21512154                $result = add_user_to_blog( $blog_id, $user_id, $role );
    21522155
    21532156                if ( ! is_wp_error( $result ) ) {
    2154                         update_user_meta( $user_id, 'primary_blog', $blog_id );
     2157                        update_user_meta( $user_id, 'primary_blog', (int) $blog_id );
    21552158                }
    21562159        }
    21572160}
  • src/wp-includes/nav-menu-template.php

     
    101101
    102102        // Get the nav menu based on the theme_location
    103103        if ( ! $menu && $args->theme_location && ( $locations = get_nav_menu_locations() ) && isset( $locations[ $args->theme_location ] ) )
    104                 $menu = wp_get_nav_menu_object( $locations[ $args->theme_location ] );
     104                $menu = wp_get_nav_menu_object( (int) $locations[ $args->theme_location ] );
    105105
    106106        // get the first menu that has items if we still can't find a menu
    107107        if ( ! $menu && !$args->theme_location ) {
    108108                $menus = wp_get_nav_menus();
    109109                foreach ( $menus as $menu_maybe ) {
    110                         if ( $menu_items = wp_get_nav_menu_items( $menu_maybe->term_id, array( 'update_post_term_cache' => false ) ) ) {
     110                        if ( $menu_items = wp_get_nav_menu_items( (int) $menu_maybe->term_id, array( 'update_post_term_cache' => false ) ) ) {
    111111                                $menu = $menu_maybe;
    112112                                break;
    113113                        }
     
    120120
    121121        // If the menu exists, get its items.
    122122        if ( $menu && ! is_wp_error($menu) && !isset($menu_items) )
    123                 $menu_items = wp_get_nav_menu_items( $menu->term_id, array( 'update_post_term_cache' => false ) );
     123                $menu_items = wp_get_nav_menu_items( (int) $menu->term_id, array( 'update_post_term_cache' => false ) );
    124124
    125125        /*
    126126         * If no menu was found:
  • src/wp-includes/nav-menu.php

     
    198198        $locations = get_nav_menu_locations();
    199199
    200200        if ( isset( $locations[ $location ] ) ) {
    201                 $menu = wp_get_nav_menu_object( $locations[ $location ] );
     201                $menu = wp_get_nav_menu_object( (int) $locations[ $location ] );
    202202
    203203                if ( $menu && $menu->name ) {
    204204                        $menu_name = $menu->name;
     
    657657        $args['include'] = $items;
    658658
    659659        if ( ! empty( $items ) ) {
    660                 $items = get_posts( $args );
     660                // expected_slashed: $args.
     661                $items = get_posts( $args ); // WPCS: slashing OK.
    661662        } else {
    662663                $items = array();
    663664        }
     
    10201021        );
    10211022
    10221023        foreach ( $auto_add as $menu_id ) {
    1023                 $items = wp_get_nav_menu_items( $menu_id, array( 'post_status' => 'publish,draft' ) );
     1024                $items = wp_get_nav_menu_items( (int) $menu_id, array( 'post_status' => 'publish,draft' ) );
    10241025                if ( ! is_array( $items ) )
    10251026                        continue;
    10261027                foreach ( $items as $item ) {
     
    10271028                        if ( $post->ID == $item->object_id )
    10281029                                continue 2;
    10291030                }
    1030                 wp_update_nav_menu_item( $menu_id, 0, $args );
     1031                wp_update_nav_menu_item( $menu_id, 0, wp_slash( $args ) );
    10311032        }
    10321033}
    10331034
  • src/wp-includes/option.php

     
    908908
    909909                // The cookie is newer than the saved value. Update the user_option and leave the cookie as-is
    910910                if ( $current > $last_saved ) {
    911                         update_user_option( $user_id, 'user-settings', $cookie, false );
     911                        update_user_option( $user_id, 'user-settings', $cookie, false ); // WPCS: slashing OK (preg_replace()).
    912912                        update_user_option( $user_id, 'user-settings-time', time() - 5, false );
    913913                        return;
    914914                }
     
    10711071        $settings = rtrim( $settings, '&' );
    10721072        parse_str( $settings, $_updated_user_settings );
    10731073
    1074         update_user_option( $user_id, 'user-settings', $settings, false );
     1074        update_user_option( $user_id, 'user-settings', $settings, false ); // WPCS: slashing OK (preg_replace()).
    10751075        update_user_option( $user_id, 'user-settings-time', time(), false );
    10761076
    10771077        return true;
  • src/wp-includes/post-formats.php

     
    7575                        $format = 'post-format-' . $format;
    7676        }
    7777
    78         return wp_set_post_terms( $post->ID, $format, 'post_format' );
     78        return wp_set_post_terms( $post->ID, $format, 'post_format' ); // WPCS: slashing OK (sanitize_key()).
    7979}
    8080
    8181/**
  • src/wp-includes/post.php

     
    442442
    443443        $r = wp_parse_args( $args, $defaults );
    444444
    445         $children = get_posts( $r );
     445        // expected_slashed: $args.
     446        $children = get_posts( $r ); // WPCS: slashing OK.
    446447
    447448        if ( ! $children )
    448449                return $kids;
     
    26602661         */
    26612662        do_action( 'wp_trash_post', $post_id );
    26622663
    2663         add_post_meta( $post_id, '_wp_trash_meta_status', $post->post_status );
     2664        add_post_meta( $post_id, '_wp_trash_meta_status', $post->post_status ); // WPCS: slashing OK (slug).
    26642665        add_post_meta( $post_id, '_wp_trash_meta_time', time() );
    26652666
    26662667        wp_update_post( array( 'ID' => $post_id, 'post_status' => 'trash' ) );
     
    27772778        $statuses = array();
    27782779        foreach ( $comments as $comment )
    27792780                $statuses[$comment->comment_ID] = $comment->comment_approved;
    2780         add_post_meta($post_id, '_wp_trash_meta_comments_status', $statuses);
     2781        add_post_meta($post_id, '_wp_trash_meta_comments_status', $statuses); // WPCS: slashing OK (slug).
    27812782
    27822783        // Set status for all comments to post-trashed.
    27832784        $result = $wpdb->update($wpdb->comments, array('comment_approved' => 'post-trashed'), array('comment_post_ID' => $post_id));
     
    29672968
    29682969        $r = wp_parse_args( $args, $defaults );
    29692970
    2970         $results = get_posts( $r );
     2971        // expected_slashed: $args.
     2972        $results = get_posts( $r ); // WPCS: slashing OK.
    29712973
    29722974        // Backward compatibility. Prior to 3.1 expected posts to be returned in array.
    29732975        if ( ARRAY_A == $output ){
     
    33213323        // Don't unslash.
    33223324        $post_mime_type = isset( $postarr['post_mime_type'] ) ? $postarr['post_mime_type'] : '';
    33233325
    3324         // Expected_slashed (everything!).
    33253326        $data = compact( 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_content_filtered', 'post_title', 'post_excerpt', 'post_status', 'post_type', 'comment_status', 'ping_status', 'post_password', 'post_name', 'to_ping', 'pinged', 'post_modified', 'post_modified_gmt', 'post_parent', 'menu_order', 'post_mime_type', 'guid' );
    33263327
    33273328        $emoji_fields = array( 'post_title', 'post_content', 'post_excerpt' );
     
    33563357                 */
    33573358                $data = apply_filters( 'wp_insert_post_data', $data, $postarr );
    33583359        }
     3360        // expected_slashed: $postarr.
    33593361        $data = wp_unslash( $data );
    33603362        $where = array( 'ID' => $post_ID );
    33613363
     
    41014103                $pung = array_merge( $pung, $uri );
    41024104        }
    41034105        else {
    4104                 $pung[] = $uri;
     4106                // This is back-compat with pre-4.7. (But maybe there was a good reason for the change?)
     4107                // https://github.com/WordPress/WordPress/commit/16f0c6877e1679b446ea3fb10ac2491e0ed3eadb#diff-ab88b030116a886cb5530713d3fd4bf2L4018
     4108                $pung[] = wp_unslash( $uri );
    41054109        }
    41064110        $new = implode("\n", $pung);
    41074111
     
    42344238                $trackback_urls = explode( ',', $tb_list );
    42354239                foreach ( (array) $trackback_urls as $tb_url ) {
    42364240                        $tb_url = trim( $tb_url );
     4241                        // TODO Why do we need to unslash here??
    42374242                        trackback( $tb_url, wp_unslash( $postdata['post_title'] ), $excerpt, $post_id );
    42384243                }
    42394244        }
     
    47094714        if ( '' !== $meta_key || '' !== $meta_value ) {
    47104715                $join = " LEFT JOIN $wpdb->postmeta ON ( $wpdb->posts.ID = $wpdb->postmeta.post_id )";
    47114716
    4712                 // meta_key and meta_value might be slashed
     4717                // expected_slashed: $meta_key, $meta_value.
    47134718                $meta_key = wp_unslash($meta_key);
    47144719                $meta_value = wp_unslash($meta_value);
    47154720                if ( '' !== $meta_key ) {
     
    49734978        wp_delete_object_term_relationships($post_id, get_object_taxonomies($post->post_type));
    49744979
    49754980        // Delete all for any posts.
    4976         delete_metadata( 'post', null, '_thumbnail_id', $post_id, true );
     4981        delete_metadata( 'post', null, '_thumbnail_id', (int) $post_id, true );
    49774982
    49784983        wp_defer_comment_counting( true );
    49794984
     
    54855490
    54865491        // If we haven't added this old slug before, add it now.
    54875492        if ( ! empty( $post_before->post_name ) && ! in_array( $post_before->post_name, $old_slugs ) ) {
    5488                 add_post_meta( $post_id, '_wp_old_slug', $post_before->post_name );
     5493                add_post_meta( $post_id, '_wp_old_slug', $post_before->post_name ); // WPCS: slashing OK (slug).
    54895494        }
    54905495
    54915496        // If the new slug was used previously, delete it from the list.
    54925497        if ( in_array( $post->post_name, $old_slugs ) ) {
    5493                 delete_post_meta( $post_id, '_wp_old_slug', $post->post_name );
     5498                delete_post_meta( $post_id, '_wp_old_slug', $post->post_name ); // WPCS: slashing OK (slug).
    54945499        }
    54955500}
    54965501
     
    60766081
    60776082        // There's a loop, but it doesn't contain $post_ID. Break the loop.
    60786083        foreach ( array_keys( $loop ) as $loop_member )
    6079                 wp_update_post( array( 'ID' => $loop_member, 'post_parent' => 0 ) );
     6084                wp_update_post( array( 'ID' => (int) $loop_member, 'post_parent' => 0 ) );
    60806085
    60816086        return $post_parent;
    60826087}
     
    60956100        $thumbnail_id = absint( $thumbnail_id );
    60966101        if ( $post && $thumbnail_id && get_post( $thumbnail_id ) ) {
    60976102                if ( wp_get_attachment_image( $thumbnail_id, 'thumbnail' ) )
    6098                         return update_post_meta( $post->ID, '_thumbnail_id', $thumbnail_id );
     6103                        return update_post_meta( $post->ID, '_thumbnail_id', (int) $thumbnail_id );
    60996104                else
    61006105                        return delete_post_meta( $post->ID, '_thumbnail_id' );
    61016106        }
     
    62706275        if ( '__trashed' === substr( $post->post_name, -9 ) ) {
    62716276                return $post->post_name;
    62726277        }
    6273         add_post_meta( $post->ID, '_wp_desired_post_slug', $post->post_name );
     6278        add_post_meta( $post->ID, '_wp_desired_post_slug', $post->post_name ); // WPCS: slashing OK (slug).
    62746279        $post_name = _truncate_post_slug( $post->post_name, 191 ) . '__trashed';
    62756280        $wpdb->update( $wpdb->posts, array( 'post_name' => $post_name ), array( 'ID' => $post->ID ) );
    62766281        clean_post_cache( $post->ID );
  • src/wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php

     
    172172                // Include admin functions to get access to wp_generate_attachment_metadata().
    173173                require_once ABSPATH . 'wp-admin/includes/admin.php';
    174174
    175                 wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) );
     175                wp_update_attachment_metadata( $id, wp_slash( wp_generate_attachment_metadata( $id, $file ) ) );
    176176
    177177                if ( isset( $request['alt_text'] ) ) {
    178                         update_post_meta( $id, '_wp_attachment_image_alt', sanitize_text_field( $request['alt_text'] ) );
     178                        update_post_meta( $id, '_wp_attachment_image_alt', wp_slash( sanitize_text_field( $request['alt_text'] ) ) );
    179179                }
    180180
    181181                $fields_update = $this->update_additional_fields_for_object( $attachment, $request );
     
    216216                $data = $response->get_data();
    217217
    218218                if ( isset( $request['alt_text'] ) ) {
    219                         update_post_meta( $data['id'], '_wp_attachment_image_alt', $request['alt_text'] );
     219                        update_post_meta( $data['id'], '_wp_attachment_image_alt', wp_slash( $request['alt_text'] ) );
    220220                }
    221221
    222222                $attachment = get_post( $request['id'] );
  • src/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php

     
    546546                        return new WP_Error( $error_code, __( 'Comment field exceeds maximum length allowed.' ), array( 'status' => 400 ) );
    547547                }
    548548
    549                 $prepared_comment['comment_approved'] = wp_allow_comment( $prepared_comment, true );
     549                $prepared_comment['comment_approved'] = wp_allow_comment( wp_slash( $prepared_comment ), true );
    550550
    551551                if ( is_wp_error( $prepared_comment['comment_approved'] ) ) {
    552552                        $error_code    = $prepared_comment['comment_approved']->get_error_code();
  • src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php

     
    12051205                        $template = '';
    12061206                }
    12071207
    1208                 update_post_meta( $post_id, '_wp_page_template', $template );
     1208                update_post_meta( $post_id, '_wp_page_template', wp_slash( $template ) );
    12091209        }
    12101210
    12111211        /**
     
    12271227                                continue;
    12281228                        }
    12291229
    1230                         $result = wp_set_object_terms( $post_id, $request[ $base ], $taxonomy->name );
     1230                        $result = wp_set_object_terms( $post_id, wp_slash( $request[ $base ] ), $taxonomy->name );
    12311231
    12321232                        if ( is_wp_error( $result ) ) {
    12331233                                return $result;
  • src/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php

     
    498498                                return $result;
    499499                        }
    500500                } else {
    501                         $user_id = wp_insert_user( wp_slash( (array) $user ) );
     501                        $userdata = wp_slash( (array) $user );
     502                        $userdata['user_pass'] = wp_unslash( $userdata['user_pass'] );
     503                        $user_id  = wp_insert_user( $userdata );
    502504
    503505                        if ( is_wp_error( $user_id ) ) {
    504506                                return $user_id;
     
    628630                // Ensure we're operating on the same user we already checked.
    629631                $user->ID = $id;
    630632
    631                 $user_id = wp_update_user( wp_slash( (array) $user ) );
     633                $userdata = wp_slash( (array) $user );
     634                if ( isset( $userdata['user_pass'] ) ) {
     635                        $userdata['user_pass'] = wp_unslash( $userdata['user_pass'] );
     636                }
     637                $user_id = wp_update_user( $userdata );
     638//              $user_id = wp_update_user( wp_slash( (array) $user ) );
    632639
    633640                if ( is_wp_error( $user_id ) ) {
    634641                        return $user_id;
  • src/wp-includes/rest-api/fields/class-wp-rest-meta-fields.php

     
    296296                        }
    297297                }
    298298
    299                 if ( ! update_metadata( $meta_type, $object_id, $meta_key, $meta_value ) ) {
     299                if ( ! update_metadata( $meta_type, $object_id, $meta_key, $meta_value ) ) { // WPCS: slashing OK (wp_slash()).
    300300                        return new WP_Error(
    301301                                'rest_meta_database_error',
    302302                                __( 'Could not update meta value in database.' ),
  • src/wp-includes/revision.php

     
    295295                return new WP_Error( 'post_type', __( 'Cannot create a revision of a revision' ) );
    296296
    297297        $post = _wp_post_revision_data( $post, $autosave );
    298         $post = wp_slash($post); //since data is from db
    299298
    300         $revision_id = wp_insert_post( $post );
     299        $revision_id = wp_insert_post( wp_slash( $post ) );
    301300        if ( is_wp_error($revision_id) )
    302301                return $revision_id;
    303302
     
    373372
    374373        $update['ID'] = $revision['post_parent'];
    375374
    376         $update = wp_slash( $update ); //since data is from db
    377 
    378         $post_id = wp_update_post( $update );
     375        $post_id = wp_update_post( wp_slash( $update ) );
    379376        if ( ! $post_id || is_wp_error( $post_id ) )
    380377                return $post_id;
    381378
  • src/wp-includes/script-loader.php

     
    11621162         */
    11631163        if ( $saved_ip_address && $current_ip_address && $current_ip_address !== $saved_ip_address ) {
    11641164                $saved_location['ip'] = $current_ip_address;
    1165                 update_user_option( $user_id, 'community-events-location', $saved_location, true );
     1165                update_user_option( $user_id, 'community-events-location', wp_slash( $saved_location ), true );
    11661166        }
    11671167
    11681168        $events_client = new WP_Community_Events( $user_id, $saved_location );
  • src/wp-includes/taxonomy.php

     
    13101310                        return $wpdb->get_var( $wpdb->prepare( $select . $where, $term ) );
    13111311        }
    13121312
     1313        // expected_slashed: $term.
    13131314        $term = trim( wp_unslash( $term ) );
    13141315        $slug = sanitize_title( $term );
    13151316
     
    16301631        foreach ( (array) $taxonomies as $taxonomy ) {
    16311632                $term_ids = wp_get_object_terms( $object_id, $taxonomy, array( 'fields' => 'ids' ) );
    16321633                $term_ids = array_map( 'intval', $term_ids );
    1633                 wp_remove_object_terms( $object_id, $term_ids, $taxonomy );
     1634                wp_remove_object_terms( $object_id, $term_ids, $taxonomy ); // WPCS: slashing OK (intval()).
    16341635        }
    16351636}
    16361637
     
    16661667
    16671668        $term = (int) $term;
    16681669
    1669         if ( ! $ids = term_exists($term, $taxonomy) )
     1670        if ( ! $ids = term_exists( (int) $term, $taxonomy ) )
    16701671                return false;
    16711672        if ( is_wp_error( $ids ) )
    16721673                return $ids;
     
    16851686
    16861687        if ( isset( $args['default'] ) ) {
    16871688                $default = (int) $args['default'];
    1688                 if ( ! term_exists( $default, $taxonomy ) ) {
     1689                if ( ! term_exists( (int) $default, $taxonomy ) ) {
    16891690                        unset( $default );
    16901691                }
    16911692        }
     
    17541755                                $terms = array_merge($terms, array($default));
    17551756                }
    17561757                $terms = array_map('intval', $terms);
    1757                 wp_set_object_terms( $object_id, $terms, $taxonomy );
     1758                wp_set_object_terms( $object_id, $terms, $taxonomy ); // WPCS: slashing OK (intval).
    17581759        }
    17591760
    17601761        // Clean the relationship caches for all object types using this term.
     
    20362037
    20372038        $args = sanitize_term($args, $taxonomy, 'db');
    20382039
    2039         // expected_slashed ($name)
     2040        // expected_slashed ($name, $description)
    20402041        $name = wp_unslash( $args['name'] );
    20412042        $description = wp_unslash( $args['description'] );
    20422043        $parent = (int) $args['parent'];
     
    25042505        $original_slug = $slug;
    25052506
    25062507        // As of 4.1, duplicate slugs are allowed as long as they're in different taxonomies.
    2507         if ( ! term_exists( $slug ) || get_option( 'db_version' ) >= 30133 && ! get_term_by( 'slug', $slug, $term->taxonomy ) ) {
     2508        if ( ! term_exists( wp_slash( $slug ) ) || get_option( 'db_version' ) >= 30133 && ! get_term_by( 'slug', $slug, $term->taxonomy ) ) {
    25082509                $needs_suffix = false;
    25092510        }
    25102511
     
    25202521                        if ( is_wp_error($parent_term) || empty($parent_term) )
    25212522                                break;
    25222523                        $parent_suffix .= '-' . $parent_term->slug;
    2523                         if ( ! term_exists( $slug . $parent_suffix ) ) {
     2524                        if ( ! term_exists( wp_slash( $slug . $parent_suffix ) ) ) {
    25242525                                break;
    25252526                        }
    25262527
     
    26372638        $args = sanitize_term($args, $taxonomy, 'db');
    26382639        $parsed_args = $args;
    26392640
    2640         // expected_slashed ($name)
     2641        // expected_slashed ($name, $description)
    26412642        $name = wp_unslash( $args['name'] );
    26422643        $description = wp_unslash( $args['description'] );
    26432644
     
    38033804
    38043805        if ( $post_ids ) {
    38053806                foreach ( $post_ids as $post_id ) {
    3806                         update_post_meta( $post_id, '_menu_item_object_id', $new_term_id, $term_id );
     3807                        update_post_meta( $post_id, '_menu_item_object_id', (int) $new_term_id, $term_id );
    38073808                }
    38083809        }
    38093810}
  • src/wp-includes/theme-compat/sidebar.php

     
    8686                <?php endif; ?>
    8787                </ul>
    8888                <ul role="navigation">
    89                         <?php wp_list_pages('title_li=<h2>' . __('Pages') . '</h2>' ); ?>
     89                        <?php wp_list_pages( array( 'title_li' => '<h2>' . __( 'Pages' ) . '</h2>' ) ); ?>
    9090
    9191                        <li><h2><?php _e('Archives'); ?></h2>
    9292                                <ul>
  • src/wp-includes/user.php

     
    16601660                $user_nicename = $alt_user_nicename;
    16611661        }
    16621662
     1663        // expected_slashed: $userdata.
    16631664        $compacted = compact( 'user_pass', 'user_email', 'user_url', 'user_nicename', 'display_name', 'user_registered' );
    16641665        $data = wp_unslash( $compacted );
    16651666
     
    18611862
    18621863        // Merge old and new fields with new fields overwriting old ones.
    18631864        $userdata = array_merge( $user, $userdata );
    1864         $user_id = wp_insert_user( $userdata );
     1865        // expected_slashed: $userdata.
     1866        $user_id = wp_insert_user( $userdata ); // WPCS: slashing OK.
    18651867
    18661868        if ( ! is_wp_error( $user_id ) ) {
    18671869
     
    20262028 *                      be created.
    20272029 */
    20282030function wp_create_user($username, $password, $email = '') {
    2029         $user_login = wp_slash( $username );
    2030         $user_email = wp_slash( $email    );
    2031         $user_pass = $password;
    2032 
    2033         $userdata = compact('user_login', 'user_email', 'user_pass');
    2034         return wp_insert_user($userdata);
     2031        return wp_insert_user(
     2032                array(
     2033                        'user_login' => wp_slash( $username ),
     2034                        'user_email' => wp_slash( $email    ),
     2035                        'user_pass'  => $password,
     2036                )
     2037        );
    20352038}
    20362039
    20372040/**
     
    26552658                        'hash'     => $hash,
    26562659                        'newemail' => $_POST['email'],
    26572660                );
    2658                 update_user_meta( $current_user->ID, '_new_email', $new_user_email );
     2661                update_user_meta( $current_user->ID, '_new_email', $new_user_email ); // WPCS: slashing OK (POST data).
    26592662
    26602663                if ( is_multisite() ) {
    26612664                        $sitename = get_site_option( 'site_name' );
  • src/wp-includes/widgets/class-wp-nav-menu-widget.php

     
    4040         */
    4141        public function widget( $args, $instance ) {
    4242                // Get menu
    43                 $nav_menu = ! empty( $instance['nav_menu'] ) ? wp_get_nav_menu_object( $instance['nav_menu'] ) : false;
     43                $nav_menu = ! empty( $instance['nav_menu'] ) ? wp_get_nav_menu_object( (int) $instance['nav_menu'] ) : false;
    4444
    4545                if ( ! $nav_menu ) {
    4646                        return;
     
    7878                 * @param array    $args          Display arguments for the current widget.
    7979                 * @param array    $instance      Array of settings for the current widget.
    8080                 */
    81                 wp_nav_menu( apply_filters( 'widget_nav_menu_args', $nav_menu_args, $nav_menu, $args, $instance ) );
     81                wp_nav_menu( apply_filters( 'widget_nav_menu_args', $nav_menu_args, $nav_menu, $args, $instance ) ); // WPCS: slashing OK (menu is an object).
    8282
    8383                echo $args['after_widget'];
    8484        }
  • src/wp-includes/widgets/class-wp-widget-categories.php

     
    9494<script type='text/javascript'>
    9595/* <![CDATA[ */
    9696(function() {
    97         var dropdown = document.getElementById( "<?php echo esc_js( $dropdown_id ); ?>" );
     97        var dropdown = document.getElementById( "<?php echo esc_js( $dropdown_id ); // WPCS: slashing OK (slug). ?>" );
    9898        function onCatChange() {
    9999                if ( dropdown.options[ dropdown.selectedIndex ].value > 0 ) {
    100100                        dropdown.parentNode.submit();
  • src/wp-includes/widgets/class-wp-widget-links.php

     
    7777                 * @param array $widget_links_args An array of arguments to retrieve the links list.
    7878                 * @param array $instance          The settings for the particular instance of the widget.
    7979                 */
    80                 wp_list_bookmarks( apply_filters( 'widget_links_args', $widget_links_args, $instance ) );
     80                wp_list_bookmarks( apply_filters( 'widget_links_args', $widget_links_args, $instance ) ); // WPCS: slashing OK (category_name not passed).
    8181        }
    8282
    8383        /**
  • src/wp-includes/widgets/class-wp-widget-pages.php

     
    7575                        'echo'        => 0,
    7676                        'sort_column' => $sortby,
    7777                        'exclude'     => $exclude
    78                 ), $instance ) );
     78                ), $instance ) ); // WPCS: slashing OK (category_name not passed).
    7979
    8080                if ( ! empty( $out ) ) {
    8181                        echo $args['before_widget'];
  • src/wp-includes/widgets/class-wp-widget-tag-cloud.php

     
    106106                $instance = array();
    107107                $instance['title'] = sanitize_text_field( $new_instance['title'] );
    108108                $instance['count'] = ! empty( $new_instance['count'] ) ? 1 : 0;
    109                 $instance['taxonomy'] = stripslashes($new_instance['taxonomy']);
     109                $instance['taxonomy'] = stripslashes($new_instance['taxonomy']); // TODO Why?
    110110                return $instance;
    111111        }
    112112
  • src/wp-login.php

     
    774774
    775775        if ( $http_post ) {
    776776                if ( isset( $_POST['user_login'] ) && is_string( $_POST['user_login'] ) ) {
    777                         $user_login = $_POST['user_login'];
     777                        $user_login = wp_unslash( $_POST['user_login'] );
    778778                }
    779779
    780780                if ( isset( $_POST['user_email'] ) && is_string( $_POST['user_email'] ) ) {
     
    803803<form name="registerform" id="registerform" action="<?php echo esc_url( site_url( 'wp-login.php?action=register', 'login_post' ) ); ?>" method="post" novalidate="novalidate">
    804804        <p>
    805805                <label for="user_login"><?php _e('Username') ?><br />
    806                 <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr(wp_unslash($user_login)); ?>" size="20" /></label>
     806                <input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr( $user_login ); ?>" size="20" /></label>
    807807        </p>
    808808        <p>
    809809                <label for="user_email"><?php _e('Email') ?><br />
    810                 <input type="email" name="user_email" id="user_email" class="input" value="<?php echo esc_attr( wp_unslash( $user_email ) ); ?>" size="25" /></label>
     810                <input type="email" name="user_email" id="user_email" class="input" value="<?php echo esc_attr( $user_email ); ?>" size="25" /></label>
    811811        </p>
    812812        <?php
    813813        /**
  • src/wp-mail.php

     
    210210        $post_category = array(get_option('default_email_category'));
    211211
    212212        $post_data = compact('post_content','post_title','post_date','post_date_gmt','post_author','post_category', 'post_status');
    213         $post_data = wp_slash($post_data);
    214 
    215         $post_ID = wp_insert_post($post_data);
     213        $post_ID = wp_insert_post( wp_slash( $post_data) );
    216214        if ( is_wp_error( $post_ID ) )
    217215                echo "\n" . $post_ID->get_error_message();
    218216
  • src/wp-signup.php

     
    422422         */
    423423        $meta = apply_filters( 'add_signup_meta', $meta_defaults );
    424424
    425         $blog_id = wpmu_create_blog( $domain, $path, $blog_title, $current_user->ID, $meta, get_current_network_id() );
     425        $blog_id = wpmu_create_blog( $domain, $path, wp_slash( $blog_title ), $current_user->ID, $meta, get_current_network_id() );
    426426
    427427        if ( is_wp_error( $blog_id ) ) {
    428428                return false;
  • src/wp-trackback.php

     
    126126
    127127        $commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type');
    128128
    129         $result = wp_new_comment( $commentdata );
     129        $result = wp_new_comment( $commentdata ); // WPCS: slashing OK (wp_slash()).
    130130
    131131        if ( is_wp_error( $result ) ) {
    132132                trackback_response( 1, $result->get_error_message() );
  • tests/phpunit/tests/rest-api/rest-users-controller.php

     
    928928                $this->check_add_edit_user_response( $response );
    929929        }
    930930
     931        public function test_create_item_slashable_password() {
     932                $this->allow_user_to_manage_multisite();
     933                wp_set_current_user( self::$user );
     934
     935                $params = array(
     936                        'username'    => 'testuser',
     937                        'password'    => 'test"password',
     938                        'email'       => 'test@example.com',
     939                        'name'        => 'Test User',
     940                        'nickname'    => 'testuser',
     941                        'slug'        => 'test-user',
     942                        'roles'       => array( 'editor' ),
     943                        'description' => 'New API User',
     944                        'url'         => 'http://example.com',
     945                );
     946
     947                $request = new WP_REST_Request( 'POST', '/wp/v2/users' );
     948                $request->add_header( 'content-type', 'application/x-www-form-urlencoded' );
     949                $request->set_body_params( $params );
     950
     951                $response = $this->server->dispatch( $request );
     952                $data = $response->get_data();
     953                $this->assertEquals( 'http://example.com', $data['url'] );
     954                $this->assertEquals( array( 'editor' ), $data['roles'] );
     955                $this->check_add_edit_user_response( $response );
     956
     957                $user = get_userdata( $data['id'] );
     958                $this->assertTrue( wp_check_password( $params['password'], $user->user_pass ) );
     959                $this->assertFalse( wp_check_password( wp_slash( $params['password'] ), $user->user_pass ) );
     960        }
     961
    931962        public function test_create_item_invalid_username() {
    932963                $this->allow_user_to_manage_multisite();
    933964                wp_set_current_user( self::$user );
     
    12761307                $this->assertEquals( $pw_before, $user->user_pass );
    12771308        }
    12781309
     1310        public function test_update_item_slashable_password() {
     1311                $user_id = $this->factory->user->create( array(
     1312                        'user_email' => 'test@example.com',
     1313                        'user_pass' => 'sjflsfls',
     1314                        'user_login' => 'test_update',
     1315                        'first_name' => 'Old Name',
     1316                        'user_url' => 'http://apple.com',
     1317                        'locale' => 'en_US',
     1318                ));
     1319                $this->allow_user_to_manage_multisite();
     1320                wp_set_current_user( self::$user );
     1321
     1322                $userdata = get_userdata( $user_id );
     1323
     1324                $_POST['email'] = $userdata->user_email;
     1325                $_POST['username'] = $userdata->user_login;
     1326                $_POST['password'] = 'slash"pass';
     1327//              $_POST['password'] = wp_slash( 'slash"pass' );
     1328//              $_POST['user_pass'] = wp_slash( 'slash\pass' );
     1329
     1330                $request = new WP_REST_Request( 'PUT', sprintf( '/wp/v2/users/%d', $user_id ) );
     1331                $request->add_header( 'content-type', 'application/x-www-form-urlencoded' );
     1332                $request->set_body_params( $_POST );
     1333
     1334                $response = $this->server->dispatch( $request );
     1335                $this->check_add_edit_user_response( $response, true );
     1336
     1337                $data = $response->get_data();
     1338                $user = get_userdata( $data['id'] );
     1339                $this->assertNotEquals( $userdata->user_pass, $user->user_pass );
     1340                $this->assertFalse( wp_check_password( wp_slash( 'slash"pass' ), $user->user_pass ) );
     1341//              $this->assertFalse( wp_check_password( wp_unslash( 'slash"pass' ), $user->user_pass ) );
     1342                $this->assertTrue( wp_check_password( 'slash"pass', $user->user_pass ) );
     1343        }
     1344
    12791345        public function test_update_item_no_change() {
    12801346                $this->allow_user_to_manage_multisite();
    12811347                wp_set_current_user( self::$user );
     
    14181484                $this->assertEquals( $pw_before, $user->user_pass );
    14191485        }
    14201486
     1487        public function test_json_update_user_slashable_password() {
     1488                $user_id = $this->factory->user->create( array(
     1489                        'user_email' => 'testjson2@example.com',
     1490                        'user_pass'  => 'sjflsfl3sdjls',
     1491                        'user_login' => 'test_json_update',
     1492                        'first_name' => 'Old Name',
     1493                        'last_name'  => 'Original Last',
     1494                ));
     1495                $this->allow_user_to_manage_multisite();
     1496                wp_set_current_user( self::$user );
     1497
     1498                $params = array(
     1499                        'username'   => 'test_json_update',
     1500                        'email'      => 'testjson2@example.com',
     1501                        'first_name' => 'JSON Name',
     1502                        'last_name'  => 'New Last',
     1503                        'password'  => 'slash\pass',
     1504                );
     1505
     1506                $userdata = get_userdata( $user_id );
     1507//              $pw_before = $userdata->user_pass;
     1508
     1509                $request = new WP_REST_Request( 'PUT', sprintf( '/wp/v2/users/%d', $user_id ) );
     1510                $request->add_header( 'content-type', 'application/json' );
     1511                $request->set_body( wp_json_encode( $params ) );
     1512
     1513                $response = $this->server->dispatch( $request );
     1514                $this->check_add_edit_user_response( $response, true );
     1515
     1516                $data = $response->get_data();
     1517                $user = get_userdata( $data['id'] );
     1518                $this->assertNotEquals( $userdata->user_pass, $user->user_pass );
     1519                $this->assertFalse( wp_check_password( wp_slash( 'slash\pass' ), $user->user_pass ) );
     1520                $this->assertFalse( wp_check_password( wp_unslash( 'slash\pass' ), $user->user_pass ) );
     1521                $this->assertTrue( wp_check_password( 'slash\pass', $user->user_pass ) );
     1522        }
     1523
    14211524        public function test_update_user_role() {
    14221525                $user_id = $this->factory->user->create( array( 'role' => 'administrator' ) );
    14231526