Ticket #10607 (closed defect (bug): fixed)

Opened 2 years ago

Last modified 22 months ago

return variable $new_array in wp-includes/wp-db.php is not initialized

Reported by: UnderWordPressure Owned by: westi
Priority: normal Milestone: 3.0
Component: Warnings/Notices Version: 2.8.3
Severity: normal Keywords: dev-feedback
Cc:

Description

Concerns "function get_results($query = null, $output = OBJECT)".

If the query is valid, but the result is empty the "return $new_array" $new_array is uninitialized.

You can see this, if you enable "error_reporting(E_ALL)".

"$new_array = array();" at the begin of the function will solve the error.

Attachments

10607.patch Download (1.2 KB) - added by miqrogroove 2 years ago.
Finishes the fix, adds minimal improvements.

Change History

  • Keywords needs-patch added; variable initialization removed
  • Owner set to westi
  • Component changed from General to Warnings/Notices
  • Milestone changed from Unassigned to 3.0

+1 Also, put eyeballs on get_col_info()

  • Status changed from new to closed
  • Resolution set to fixed

(In [13161]) Init array in wpdb:get_results() and get_col_info(). Props UnderWordPressure, miqrogroove, fixes #10607

Referenced: #11799

  • Status changed from closed to reopened
  • Resolution fixed deleted

Finishes the fix, adds minimal improvements.

  • Status changed from reopened to accepted
  • Status changed from accepted to closed
  • Resolution set to fixed

(In [13671]) Ensure that wpdb::get_results() always returns an array when it should. Fixes #10607 props miqrogroove.

  • Status changed from closed to reopened
  • Resolution fixed deleted

(In [13681]) Check for empty(), not !is_array(), when trying to determine if wpdb::get_results() returned results. See #10607

  • Keywords dev-feedback added; needs-patch removed

During the dev chat today, it was brought up that is_null($result) could pose a problem for plugins as a result of [13671].

Checking for is_array() or !is_array() for whether there are or are not results is a similar situation. I made one fix in [13681].

While I doubt we do this elsewhere in core, I wanted to re-open for discussion, as this could definitely break some plugins and I'm not sure there's a good solution;.

  • Status changed from reopened to closed
  • Resolution set to fixed

Per IRC discussion.

Note: See TracTickets for help on using tickets.