mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Merge branch 'PHP-8.1'
* PHP-8.1: Fix leak of invalid stream_read() return value
This commit is contained in:
commit
b976ad09ab
2 changed files with 25 additions and 0 deletions
24
ext/standard/tests/streams/stream_read_object_return.phpt
Normal file
24
ext/standard/tests/streams/stream_read_object_return.phpt
Normal file
|
@ -0,0 +1,24 @@
|
|||
--TEST--
|
||||
Returning an object from stream_read() is invalid, but should not leak
|
||||
--FILE--
|
||||
<?php
|
||||
class MyStream {
|
||||
function stream_open() {
|
||||
return true;
|
||||
}
|
||||
function stream_stat() {
|
||||
return false;
|
||||
}
|
||||
function stream_read() {
|
||||
return new stdClass;
|
||||
}
|
||||
}
|
||||
stream_wrapper_register('mystream', MyStream::class);
|
||||
try {
|
||||
var_dump(file_get_contents('mystream://'));
|
||||
} catch (Error $e) {
|
||||
echo $e->getMessage(), "\n";
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
Object of class stdClass could not be converted to string
|
|
@ -639,6 +639,7 @@ static ssize_t php_userstreamop_read(php_stream *stream, char *buf, size_t count
|
|||
}
|
||||
|
||||
if (!try_convert_to_string(&retval)) {
|
||||
zval_ptr_dtor(&retval);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue