]> granicus.if.org Git - php/commit
Require non-negative length in stream_get_contents()
authorNikita Popov <nikita.ppv@gmail.com>
Thu, 27 Aug 2020 13:49:33 +0000 (15:49 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Thu, 27 Aug 2020 13:50:49 +0000 (15:50 +0200)
commit62dce97973436f1830b18304e7939a03b18d44ba
tree639e43bdfeb5bc6ec605532047153ec85f8274e4
parent1b7ee6db884b7574893bc737a6f7fb5fdf9d619b
Require non-negative length in stream_get_contents()

If the length is not -1, require it to be non-negative.

Using such lengths doesn't make sense (as only -1 is special-case
to read in chunks, anything else will end up doing a huge upfront
allocation) and can lead to string allocation overflow.

A similar check is already in place for file_get_contents(). That
one does not allow -1 (and uses null instead), but this function
is explicitly specified to accept -1, so stick to that behavior.
ext/standard/streamsfuncs.c
ext/standard/tests/streams/stream_get_contents_negative_length.phpt [new file with mode: 0644]