Skip to:
Content

BuddyPress.org

Ticket #4989: 4898.2.patch

File 4898.2.patch, 4.2 KB (added by johnjamesjacoby, 11 years ago)

escape() rather than prepare()

  • bp-groups/bp-groups-classes.php

     
    371371                        $sql['user'] = $wpdb->prepare( " AND m.user_id = %d AND m.is_confirmed = 1 AND m.is_banned = 0", $user_id );
    372372
    373373                if ( !empty( $include ) ) {
    374                         if ( is_array( $include ) )
    375                                 $include = implode( ',', $include );
    376 
    377                         $include = $wpdb->escape( $include );
     374                        $include        = wp_parse_id_list( $r['include'] );
     375                        $include        = $wpdb->escape( implode( ',', $include ) );
    378376                        $sql['include'] = " AND g.id IN ({$include})";
    379377                }
    380378
    381379                if ( !empty( $exclude ) ) {
    382                         if ( is_array( $exclude ) )
    383                                 $exclude = implode( ',', $exclude );
    384 
    385                         $exclude = $wpdb->escape( $exclude );
     380                        $exclude        = wp_parse_id_list( $r['exclude'] );
     381                        $exclude        = $wpdb->escape( implode( ',', $exclude ) );
    386382                        $sql['exclude'] = " AND g.id NOT IN ({$exclude})";
    387383                }
    388384
     
    484480                }
    485481
    486482                if ( !empty( $exclude ) ) {
    487                         $exclude = $wpdb->escape( $exclude );
     483                        $exclude     = wp_parse_id_list( $exclude );
     484                        $exclude     = $wpdb->escape( implode( ',', $exclude ) );
    488485                        $exclude_sql = " AND g.id NOT IN ({$exclude})";
    489486                }
    490487
     
    525522                }
    526523
    527524                if ( !empty( $exclude ) ) {
    528                         $exclude = $wpdb->escape( $exclude );
     525                        $exclude     = wp_parse_id_list( $exclude );
     526                        $exclude     = $wpdb->escape( implode( ',', $exclude ) );
    529527                        $exclude_sql = " AND g.id NOT IN ({$exclude})";
    530528                }
    531529
     
    562560                }
    563561
    564562                if ( !empty( $exclude ) ) {
    565                         $exclude = $wpdb->escape( $exclude );
     563                        $exclude     = wp_parse_id_list( $exclude );
     564                        $exclude     = $wpdb->escape( implode( ',', $exclude ) );
    566565                        $exclude_sql = " AND g.id NOT IN ({$exclude})";
    567566                }
    568567
     
    606605                }
    607606
    608607                if ( !empty( $exclude ) ) {
    609                         $exclude = $wpdb->escape( $exclude );
     608                        $exclude     = wp_parse_id_list( $exclude );
     609                        $exclude     = $wpdb->escape( implode( ',', $exclude ) );
    610610                        $exclude_sql = " AND g.id NOT IN ({$exclude})";
    611611                }
    612612
     
    10721072
    10731073                $pag_sql = ( !empty( $limit ) && !empty( $page ) ) ? $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ) : '';
    10741074
    1075                 $exclude_sql = !empty( $exclude ) ? $wpdb->prepare( " AND g.id NOT IN (%s)", $exclude ) : '';
     1075                if ( !empty( $exclude ) ) {
     1076                        $exclude     = wp_parse_id_list( $exclude );
     1077                        $exclude     = $wpdb->escape( implode( ',', $exclude ) );
     1078                        $exclude_sql = " AND g.id NOT IN ({$exclude})";
     1079                }
    10761080
    10771081                $paged_groups = $wpdb->get_results( $wpdb->prepare( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE g.id = m.group_id AND g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count' AND m.is_confirmed = 0 AND m.inviter_id != 0 AND m.invite_sent = 1 AND m.user_id = %d {$exclude_sql} ORDER BY m.date_modified ASC {$pag_sql}", $user_id ) );
    10781082                $total_groups = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT m.group_id) FROM {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE m.group_id = g.id AND m.is_confirmed = 0 AND m.inviter_id != 0 AND m.invite_sent = 1 AND m.user_id = %d {$exclude_sql} ORDER BY date_modified ASC", $user_id ) );
     
    12271231
    12281232                $exclude_sql = '';
    12291233                if ( !empty( $exclude ) ) {
    1230                         $exclude = implode( ',', wp_parse_id_list( $exclude ) );
     1234                        $exclude     = wp_parse_id_list( $exclude );
     1235                        $exclude     = $wpdb->escape( implode( ',', $exclude ) );
    12311236                        $exclude_sql = " AND m.user_id NOT IN ({$exclude})";
    12321237                }
    12331238
  • bp-themes/bp-default/_inc/ajax.php

     
    124124
    125125        // If page and search_terms have been passed via the AJAX post request, use those.
    126126        if ( ! empty( $_POST['page'] ) && '-1' != $_POST['page'] )
    127                 $qs[] = 'page=' . $_POST['page'];
     127                $qs[] = 'page=' . absint( $_POST['page'] );
    128128
    129129        $object_search_text = bp_get_search_default_text( $object );
    130130        if ( ! empty( $_POST['search_terms'] ) && $object_search_text != $_POST['search_terms'] && 'false' != $_POST['search_terms'] && 'undefined' != $_POST['search_terms'] )