Make WordPress Core


Ignore:
Timestamp:
08/27/2020 02:55:39 AM (4 years ago)
Author:
TimothyBlynJacobs
Message:

REST API: Fix multi-type schemas with integer fields.

In [48306] support for multi-typed schemas was improved to first detect the data type of the value before applying further validation. The integer data type was detected using the new rest_is_integer function. This function used logic, however, that assumed that the value had already passed an is_numeric check. This meant that if integer and string were both acceptable types, the value would always be considered an integer causing the later accurate type validation to fail.

This commit fixes the rest_is_integer logic to include an is_numeric check.

Props rtagliento.
Fixes #51146.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/rest-api.php

    r48827 r48881  
    13161316 */
    13171317function rest_is_integer( $maybe_integer ) {
    1318     return round( floatval( $maybe_integer ) ) === floatval( $maybe_integer );
     1318    return is_numeric( $maybe_integer ) && round( floatval( $maybe_integer ) ) === floatval( $maybe_integer );
    13191319}
    13201320
Note: See TracChangeset for help on using the changeset viewer.