Browse Source
Fix GH-19705: do not flush/write buffer on non writeable stream.
Co-authored-by: Jakub Zelenka <bukka@php.net>
close GH-19708
pull/20040/head
David Carlier
2 months ago
No known key found for this signature in database
GPG Key ID: 2FB76A8CE6CD2B41
3 changed files with
14 additions and
1 deletions
-
NEWS
-
ext/standard/tests/streams/gh19705.phpt
-
main/streams/streams.c
|
|
@ -57,6 +57,8 @@ PHP NEWS |
|
|
|
. Fixed bug GH-19248 (Use strerror_r instead of strerror in main). |
|
|
|
(Jakub Zelenka) |
|
|
|
. Fixed bug GH-17345 (Bug #35916 was not completely fixed). (nielsdos) |
|
|
|
. Fixed bug GH-19705 (segmentation when attempting to flush on non seekable |
|
|
|
stream. (bukka/David Carlier) |
|
|
|
|
|
|
|
- XMLReader: |
|
|
|
. Fixed bug GH-20009 (XMLReader leak on RelaxNG schema failure). (nielsdos) |
|
|
|
|
|
@ -0,0 +1,11 @@ |
|
|
|
--TEST-- |
|
|
|
GH-19705 segmentation fault with non writable stream at stream_filter_append call. |
|
|
|
--EXTENSIONS-- |
|
|
|
zlib |
|
|
|
--FILE-- |
|
|
|
<?php |
|
|
|
$fh = fopen('data://text/plain,', 'w+',); |
|
|
|
var_dump(stream_filter_append($fh, 'zlib.deflate',STREAM_FILTER_WRITE)); |
|
|
|
?> |
|
|
|
--EXPECTF-- |
|
|
|
resource(%d) of type (stream filter) |
|
|
@ -1295,7 +1295,7 @@ PHPAPI int _php_stream_flush(php_stream *stream, int closing) |
|
|
|
{ |
|
|
|
int ret = 0; |
|
|
|
|
|
|
|
if (stream->writefilters.head) { |
|
|
|
if (stream->writefilters.head && stream->ops->write) { |
|
|
|
_php_stream_write_filtered(stream, NULL, 0, closing ? PSFS_FLAG_FLUSH_CLOSE : PSFS_FLAG_FLUSH_INC ); |
|
|
|
} |
|
|
|
|
|
|
|