[wp-trac] [WordPress Trac] #53949: WP_Media_List_Table::prepare_items(): fix PHP warning
WordPress Trac
noreply at wordpress.org
Wed Aug 18 02:55:09 UTC 2021
#53949: WP_Media_List_Table::prepare_items(): fix PHP warning
----------------------------+--------------------------------------
Reporter: jrf | Owner: (none)
Type: defect (bug) | Status: new
Priority: normal | Milestone: 5.9
Component: Administration | Version:
Severity: normal | Keywords: has-patch has-unit-tests
Focuses: |
----------------------------+--------------------------------------
The following warnings could, in very select circumstances, be shown when
the `WP_Media_List_Table::prepare_items()` method is called:
{{{
// PHP 8.0 and higher:
Warning: foreach() argument must be of type array|object, bool given
// PHP 5.6 - 7.4
Warning: Invalid argument supplied for foreach()
}}}
In `WP_Media_List_Table::prepare_items()`, the cron info array is
retrieved via a call to `_get_cron_array()`, but as the documentation for
that function (correctly) states, the return type of that function is
`array|false`, where `false` is returned for a site, where no cron jobs
have been scheduled (yet).
However, no type check is done on the return value and the method just
blindly continues by using the return value in a `foreach`.
Fixed by adding validation for the returned value from `_get_cron_array()`
and only running the `foreach` when the returned value is an array.
Ref: https://developer.wordpress.org/reference/functions/_get_cron_array/
--
Ticket URL: <https://core.trac.wordpress.org/ticket/53949>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list