|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull Requests
Pull requests:
HistoryAllCommentsChangesGit/SVN commits
[2021-07-25 20:21 UTC] requinix@php.net
-Status: Open
+Status: Verified
[2021-07-25 20:21 UTC] requinix@php.net
[2021-07-26 11:58 UTC] cmb@php.net
-PHP Version: 8.0.8
+PHP Version: 7.4
-Assigned To:
+Assigned To: cmb
[2021-07-26 11:59 UTC] cmb@php.net
-Package: Filter related
+Package: Streams related
[2021-07-26 11:59 UTC] cmb@php.net
[2021-07-26 12:13 UTC] cmb@php.net
[2021-07-27 10:17 UTC] git@php.net
[2021-07-27 10:17 UTC] git@php.net
-Status: Verified
+Status: Closed
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Oct 30 18:00:02 2025 UTC |
Description: ------------ This one seems to be sourced back since quite some time (at least from 5.6.30 till 8.0.8). Right now I do not have the time for posting too many details but it should be pretty clear to understand by looking at streams/filter.c, function _php_stream_filter_flush, then the loop with current = filter and then referencing filter->fops->filter() instead of current->fops->filter(). Test script: --------------- class some_user_filter { ... } stream_filter_register("some.filter", "some_user_filter"); $f = fopen("test", "wb"); $flt1 = stream_filter_append($f, "zlib.deflate", STREAM_FILTER_WRITE); $flt2 = stream_filter_append($f, "some.filter", STREAM_FILTER_WRITE); fwrite($f, "test"); stream_filter_remove($flt1); // this line will fail and at the end of the script a segfault / or MS Don't send / access violation fwrite($f, "test"1);