Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
06/16/2015 10:50:15 PM (10 years ago)
Author:
johnjamesjacoby
Message:

Messages: Introduce filter to enforce private message thread query boundaries.

This change ensures that all queries for private messages will always return anticipated results, even when certain malformed values are passed in. It specifically hardens the user ID argument to prevent accidental overriding.

Fixes #6504. Props r-a-y. (2.3 branch, for 2.3.2)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.3/src/bp-messages/classes/class-bp-messages-thread.php

    r9929 r9949  
    454454        }
    455455
    456         if ( ! empty( $r['user_id'] ) ) {
    457             if ( 'sentbox' == $r['box'] ) {
     456        $r['user_id'] = (int) $r['user_id'];
     457
     458        switch ( $r['box'] ) {
     459            case 'sentbox' :
    458460                $user_id_sql = 'AND ' . $wpdb->prepare( 'm.sender_id = %d', $r['user_id'] );
    459                 $sender_sql  = ' AND m.sender_id = r.user_id';
    460             } else {
     461                $sender_sql  = 'AND m.sender_id = r.user_id';
     462                break;
     463
     464            case 'inbox' :
     465            default :
    461466                $user_id_sql = 'AND ' . $wpdb->prepare( 'r.user_id = %d', $r['user_id'] );
    462                 $sender_sql  = ' AND r.sender_only = 0';
    463             }
     467                $sender_sql  = 'AND r.sender_only = 0';
     468                break;
    464469        }
    465470
Note: See TracChangeset for help on using the changeset viewer.