[wp-trac] [WordPress Trac] #24884: WP_Query's "m" parameter is cast to an int which is a problem due to 32-bit signed intergers
WordPress Trac
noreply at wordpress.org
Mon Jul 29 23:21:14 UTC 2013
#24884: WP_Query's "m" parameter is cast to an int which is a problem due to 32-bit
signed intergers
--------------------------+------------------------------
Reporter: Viper007Bond | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Query | Version: 3.5.2
Severity: normal | Resolution:
Keywords: has-patch |
--------------------------+------------------------------
Description changed by Viper007Bond:
Old description:
> `WP_Query`'s `m` parameter accepts MySQL datetimes basically. These
> values can be up to 14 characters long (YYYYMMDDHHMMSS). For the long
> values, you end up with
> [http://en.wikipedia.org/wiki/2147483647#2147483647_in_computing
> 2147483647] when the passed value is run through `absint()`. While in the
> process of being used to create a query, it is further validated by being
> run through `preg_replace( '|[^0-9]|', '', $q['m'] )` which makes the
> integer casting redundant.
>
> Attached is a patch that fixes this issue by just using regex to validate
> the value.
>
> I discovered this while writing unit tests for #18694 and which the patch
> on this ticket applied, the unit tests now work as expected. This is
> another case of unit tests saving the day! :)
New description:
`WP_Query`'s `m` parameter accepts MySQL datetimes basically. These values
can be up to 14 characters long (YYYYMMDDHHMMSS). For the long values, you
end up with
[http://en.wikipedia.org/wiki/2147483647#2147483647_in_computing
2147483647] when the passed value is run through `absint()`. While in the
process of being used to create a query, it is further validated by being
run through `preg_replace( '|[^0-9]|', '', $q['m'] )` which makes the
integer casting redundant.
Attached is a patch that fixes this issue by just using regex to validate
the value.
I discovered this while writing unit tests for #18694 and with the patch
on this ticket applied, the unit tests now work as expected. This is
another case of unit tests saving the day! :)
--
--
Ticket URL: <http://core.trac.wordpress.org/ticket/24884#comment:1>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list