diff --git a/phpBB/docs/CHANGELOG.html b/phpBB/docs/CHANGELOG.html index 99253f7f43..6b71b55017 100644 --- a/phpBB/docs/CHANGELOG.html +++ b/phpBB/docs/CHANGELOG.html @@ -221,6 +221,7 @@ p a {
  • [Fix] Correctly deliver avatar if readfile function has been disabled (Bug #13309)
  • [Fix] Display php information page with the correct direction (Bug #12557)
  • [Fix] Increased the number of style objects (styles, templates, themes and imagesets) possible from 127 to 65535 for MySQL (Bug #13179)
  • +
  • [Fix] Although theoretically impossible in our code, removed the chance of (Bug #13327)
  • diff --git a/phpBB/includes/functions_compress.php b/phpBB/includes/functions_compress.php index d8267cf7f6..ade844b262 100644 --- a/phpBB/includes/functions_compress.php +++ b/phpBB/includes/functions_compress.php @@ -12,7 +12,7 @@ * Class for handling archives (compression/decompression) * @package phpBB3 */ -class compress +class compress { var $fp = 0; @@ -434,12 +434,15 @@ class compress_zip extends compress header("Content-Type: $mimetype; name=\"$download_name.zip\""); header("Content-disposition: attachment; filename=$download_name.zip"); - $fp = fopen("{$phpbb_root_path}store/$filename.zip", 'rb'); - while ($buffer = fread($fp, 1024)) + $fp = @fopen("{$phpbb_root_path}store/$filename.zip", 'rb'); + if ($fp) { - echo $buffer; + while ($buffer = fread($fp, 1024)) + { + echo $buffer; + } + fclose($fp); } - fclose($fp); } } @@ -546,8 +549,8 @@ class compress_tar extends compress { $fzwrite = ($this->isbz && function_exists('bzwrite')) ? 'bzwrite' : (($this->isgz && @extension_loaded('zlib')) ? 'gzwrite' : 'fwrite'); - // Symbolizes that there are no more files - $fzwrite($this->fp, str_repeat("\0", 512)); + // The end of a tar archive ends in two records of all NULLs (1024 bytes of \0) + $fzwrite($this->fp, str_repeat("\0", 1024)); } $fzclose($this->fp); @@ -648,12 +651,15 @@ class compress_tar extends compress header("Content-Type: $mimetype; name=\"$download_name$this->type\""); header("Content-disposition: attachment; filename=$download_name$this->type"); - $fp = fopen("{$phpbb_root_path}store/$filename$this->type", 'rb'); - while ($buffer = fread($fp, 1024)) + $fp = @fopen("{$phpbb_root_path}store/$filename$this->type", 'rb'); + if ($fp) { - echo $buffer; + while ($buffer = fread($fp, 1024)) + { + echo $buffer; + } + fclose($fp); } - fclose($fp); } }