Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
09/06/2016 07:34:00 PM (9 years ago)
Author:
boonebgorges
Message:

Bail early if an array containing only 0 is passed to 'include' in user queries.

When 'include' is [ 0 ] or [ '0' ]`, there's no reason to run a costly
SQL query - we can immediately report no results.

Fixes #7248.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-core/classes/class-bp-user-query.php

    r11024 r11067  
    365365        $include     = false !== $include ? wp_parse_id_list( $include ) : array();
    366366        $include_ids = $this->get_include_ids( $include );
    367         if ( ! empty( $include_ids ) ) {
     367
     368        // An array containing nothing but 0 should always fail.
     369        if ( 1 === count( $include_ids ) && 0 == reset( $include_ids ) ) {
     370            $sql['where'][] = $this->no_results['where'];
     371        } elseif ( ! empty( $include_ids ) ) {
    368372            $include_ids    = implode( ',', wp_parse_id_list( $include_ids ) );
    369373            $sql['where'][] = "u.{$this->uid_name} IN ({$include_ids})";
Note: See TracChangeset for help on using the changeset viewer.