From 418e3183bbc1c433a20e03753229d07c766f40e8 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 20 Jun 2026 05:01:24 +0100 Subject: [PATCH 1/2] Fix GH-22360: convert.base64-encode corruption on incremental flush. Fix #22360 --- ext/standard/filters.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/standard/filters.c b/ext/standard/filters.c index d0fdd0f1f68b..a7c0a035a239 100644 --- a/ext/standard/filters.c +++ b/ext/standard/filters.c @@ -1519,7 +1519,7 @@ static php_stream_filter_status_t strfilter_convert_filter( php_stream_bucket_delref(bucket); } - if (flags != PSFS_FLAG_NORMAL) { + if (flags & PSFS_FLAG_FLUSH_CLOSE) { if (strfilter_convert_append_bucket(inst, stream, thisfilter, buckets_out, NULL, 0, &consumed, php_stream_is_persistent(stream)) != SUCCESS) { From 3b589fa17c1a2ce7c8261244a56a3ed49ec702a0 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 20 Jun 2026 05:27:14 +0100 Subject: [PATCH 2/2] add test --- ext/standard/tests/filters/gh22360.phpt | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 ext/standard/tests/filters/gh22360.phpt diff --git a/ext/standard/tests/filters/gh22360.phpt b/ext/standard/tests/filters/gh22360.phpt new file mode 100644 index 000000000000..b23483b22b92 --- /dev/null +++ b/ext/standard/tests/filters/gh22360.phpt @@ -0,0 +1,24 @@ +--TEST-- +GH-22360 (convert.base64-encode emits padding on incremental flush) +--FILE-- + +--CLEAN-- + +--EXPECT-- +string(4) "YWJj" +YWJj