]> granicus.if.org Git - php/commitdiff
Fix #71263: fread() does not report bzip2.decompress errors
authorChristoph M. Becker <cmbecker69@gmx.de>
Fri, 17 Apr 2020 13:48:20 +0000 (15:48 +0200)
committerChristoph M. Becker <cmbecker69@gmx.de>
Mon, 20 Apr 2020 12:21:50 +0000 (14:21 +0200)
If the bzip2.decompress filter fails to decompress the stream, we raise
a notice instead of failing silently.

NEWS
ext/bz2/bz2_filter.c
ext/bz2/tests/bug71263.phpt

diff --git a/NEWS b/NEWS
index 430edada417925c3797f719bc371b563b87f9934..5e6ff58f39daaad2234c42207c92ab7e6aeacd60 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -21,6 +21,9 @@ PHP                                                                        NEWS
   . Fixed bug #79368 ("Unexpected end of file" is not an acceptable error
     message). (Alex Dowad)
 
+- BZ2:
+  . Fixed bug #71263 (fread() does not report bzip2.decompress errors). (cmb)
+
 - CURL:
   . Bumped required libcurl version to 7.29.0. (cmb)
 
index 40e01edca020116f9943a0daab40b3063bfb012a..bb001198f42666e3a028f506f8b141536dc5583e 100644 (file)
@@ -123,6 +123,7 @@ static php_stream_filter_status_t php_bz2_decompress_filter(
                                }
                        } else if (status != BZ_OK) {
                                /* Something bad happened */
+                               php_error_docref(NULL, E_NOTICE, "bzip2 decompression failed");
                                php_stream_bucket_delref(bucket);
                                return PSFS_ERR_FATAL;
                        }
index 108469a2930e6101022565a27e26149a634a37de..b20bbd8ef1daa57f0e48a6852ba01fdff488bde3 100644 (file)
@@ -1,12 +1,10 @@
 --TEST--
-Bug #71263: fread() does not detects decoding errors from filter bzip2.decompress
+Bug #71263: fread() does not report bzip2.decompress errors
 --SKIPIF--
 <?php if (!extension_loaded("bz2")) print "skip bz2 extension not loaded"; ?>
 --FILE--
 <?php
 
-// Should notices be generated?
-
 function test($case) {
     $plain = "The quick brown fox jumps over the lazy dog.";
     $fn = "bug71263.bz2";
@@ -46,10 +44,14 @@ test(1);
 test(2);
 test(3);
 ?>
---EXPECT--
+--EXPECTF--
 Compressed len = 81
+
+Notice: fread(): bzip2 decompression failed in %s on line %d
 read: bool(false)
 Compressed len = 81
 read: string(0) ""
 Compressed len = 81
+
+Notice: fread(): bzip2 decompression failed in %s on line %d
 read: bool(false)