From 98705148f003551c330ace7f702448333a789180 Mon Sep 17 00:00:00 2001 From: Joe Watkins Date: Fri, 30 Sep 2016 07:21:01 +0100 Subject: fix user filter bug --- .../tests/streams/user_streams_consumed_bug.phpt | 32 ++++++++++++++++++++++ ext/standard/user_filters.c | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 ext/standard/tests/streams/user_streams_consumed_bug.phpt diff --git a/ext/standard/tests/streams/user_streams_consumed_bug.phpt b/ext/standard/tests/streams/user_streams_consumed_bug.phpt new file mode 100644 index 0000000000..147a7bd0a7 --- /dev/null +++ b/ext/standard/tests/streams/user_streams_consumed_bug.phpt @@ -0,0 +1,32 @@ +--TEST-- +Testing user filter on streams +--FILE-- +data; + $consumed += $bucket->datalen; + stream_bucket_append($out, $bucket); + } + return PSFS_PASS_ON; + } +} + +$out = fwrite(STDOUT, "Hello\n"); +var_dump($out); + +stream_filter_register("intercept_filter", "Intercept"); +stream_filter_append(STDOUT, "intercept_filter"); + +$out = fwrite(STDOUT, "Goodbye\n"); +var_dump($out); +--EXPECTF-- +Hello +int(6) +Goodbye +int(8) + diff --git a/ext/standard/user_filters.c b/ext/standard/user_filters.c index b31235b4f1..5ca6e0bb1f 100644 --- a/ext/standard/user_filters.c +++ b/ext/standard/user_filters.c @@ -217,7 +217,7 @@ php_stream_filter_status_t userfilter_filter( } if (bytes_consumed) { - *bytes_consumed = Z_LVAL_P(&args[2]); + *bytes_consumed = zval_get_long(&args[2]); } if (buckets_in->head) { -- cgit v1.2.1