cellog Sat Jan 12 22:03:44 2008 UTC
Modified files:
/php-src/ext/zlib zlib_filter.c
/php-src/ext/bz2 bz2_filter.c
Log:
MFB: far better fix for bug #40189
http://cvs.php.net/viewvc.cgi/php-src/ext/zlib/zlib_filter.c?r1=1.20&r2=1.21&diff_format=u
Index: php-src/ext/zlib/zlib_filter.c
diff -u php-src/ext/zlib/zlib_filter.c:1.20 php-src/ext/zlib/zlib_filter.c:1.21
--- php-src/ext/zlib/zlib_filter.c:1.20 Sat Jan 12 21:25:43 2008
+++ php-src/ext/zlib/zlib_filter.c Sat Jan 12 22:03:44 2008
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zlib_filter.c,v 1.20 2008/01/12 21:25:43 cellog Exp $ */
+/* $Id: zlib_filter.c,v 1.21 2008/01/12 22:03:44 cellog Exp $ */
#include "php.h"
#include "php_zlib.h"
@@ -114,11 +114,9 @@
data->strm.avail_out = data->outbuf_len;
data->strm.next_out = data->outbuf;
exit_status = PSFS_PASS_ON;
- if (status == Z_STREAM_END) {
+ if (status == Z_STREAM_END &&
data->strm.avail_out >= data->outbuf_len) {
/* no more data to decompress, and
nothing was spat out */
- if (data->strm.avail_out >=
data->outbuf_len) {
- php_stream_bucket_delref(bucket
TSRMLS_CC);
- }
+ php_stream_bucket_delref(bucket
TSRMLS_CC);
return PSFS_PASS_ON;
}
}
http://cvs.php.net/viewvc.cgi/php-src/ext/bz2/bz2_filter.c?r1=1.16&r2=1.17&diff_format=u
Index: php-src/ext/bz2/bz2_filter.c
diff -u php-src/ext/bz2/bz2_filter.c:1.16 php-src/ext/bz2/bz2_filter.c:1.17
--- php-src/ext/bz2/bz2_filter.c:1.16 Sat Jan 12 21:25:42 2008
+++ php-src/ext/bz2/bz2_filter.c Sat Jan 12 22:03:44 2008
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: bz2_filter.c,v 1.16 2008/01/12 21:25:42 cellog Exp $ */
+/* $Id: bz2_filter.c,v 1.17 2008/01/12 22:03:44 cellog Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -108,7 +108,7 @@
consumed += desired;
bin += desired;
- if (status == BZ_STREAM_END || data->strm.avail_out <
data->outbuf_len) {
+ if (data->strm.avail_out < data->outbuf_len) {
php_stream_bucket *out_bucket;
size_t bucketlen = data->outbuf_len -
data->strm.avail_out;
out_bucket = php_stream_bucket_new(stream,
estrndup(data->outbuf, bucketlen), bucketlen, 1, 0 TSRMLS_CC);
@@ -116,13 +116,10 @@
data->strm.avail_out = data->outbuf_len;
data->strm.next_out = data->outbuf;
exit_status = PSFS_PASS_ON;
- if (status == BZ_STREAM_END) {
- /* no more data to decompress, and
nothing was spat out */
- if (data->strm.avail_out >=
data->outbuf_len) {
- php_stream_bucket_delref(bucket
TSRMLS_CC);
- }
- return PSFS_PASS_ON;
- }
+ } else if (status == BZ_STREAM_END &&
data->strm.avail_out >= data->outbuf_len) {
+ /* no more data to decompress, and nothing was
spat out */
+ php_stream_bucket_delref(bucket TSRMLS_CC);
+ return PSFS_PASS_ON;
}
}
php_stream_bucket_delref(bucket TSRMLS_CC);
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php