Making WordPress.org

Changeset 15013


Ignore:
Timestamp:
07/28/2026 04:04:37 PM (21 hours ago)
Author:
obenland
Message:

Login: Sanitize the per_page query argument in the pending registrations list table.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-login/admin/class-user-registrations-list-table.php

    r14602 r15013  
    292292                }
    293293
    294                 $per_page     = $_GET['per_page'] ?? $this->get_items_per_page( 'users_per_page', 100 );
     294                // Bounds match core's users_per_page screen option, see set_screen_options().
     295                $per_page = isset( $_GET['per_page'] )
     296                        ? min( 999, max( 1, absint( $_GET['per_page'] ) ) )
     297                        : $this->get_items_per_page( 'users_per_page', 100 );
     298
    295299                $current_page = $this->get_pagenum();
    296300
    297301                $join_where = $this->get_join_where_sql();
    298302
    299                 $per_page_offset = ($current_page-1) * $per_page;
     303                $per_page_offset = ( $current_page - 1 ) * $per_page;
     304
     305                // Prepared separately; $join_where already contains prepared LIKE patterns.
     306                $limit = $wpdb->prepare( 'LIMIT %d, %d', $per_page_offset, $per_page );
    300307
    301308                $this->items = $wpdb->get_results(
     
    304311                        $join_where
    305312                        ORDER BY {$sort_column} {$sort_order}
    306                         LIMIT {$per_page_offset}, {$per_page}"
     313                        $limit"
    307314                );
    308315
Note: See TracChangeset for help on using the changeset viewer.