diff --git a/phpBB/docs/CHANGELOG.html b/phpBB/docs/CHANGELOG.html
index 266ea2a80a..15ec8cb4fc 100644
--- a/phpBB/docs/CHANGELOG.html
+++ b/phpBB/docs/CHANGELOG.html
@@ -157,6 +157,7 @@
[Fix] Force full date for PMs print-view (Patch by nickvergessen)
[Fix] Fix "Always show a scrollbar for short pages" for IE8 and Firefox 3.5 (Bug #47865 - Patch by stokerpiller)
[Fix] Do not allow setting group as default group for pending user (Bug #45675 - Patch by nickvergessen)
+ [Fix] Fail gracefully if store folder is not writable during update. (Bugs #46615, #46945)
[Change] Change the data format of the default file ACM to be more secure from tampering and have better performance.
[Change] Add index on log_time to the log table to prevent slowdown on boards with many log entries. (Bug #44665 - Patch by bantu)
[Change] Template engine now permits to a limited extent variable includes.
diff --git a/phpBB/includes/functions_compress.php b/phpBB/includes/functions_compress.php
index 881e1ba5cc..590daabf1d 100644
--- a/phpBB/includes/functions_compress.php
+++ b/phpBB/includes/functions_compress.php
@@ -155,7 +155,12 @@ class compress_zip extends compress
*/
function compress_zip($mode, $file)
{
- return $this->fp = @fopen($file, $mode . 'b');
+ $this->fp = @fopen($file, $mode . 'b');
+
+ if (!$this->fp)
+ {
+ trigger_error('Unable to open file ' . $file . ' [' . $mode . 'b]');
+ }
}
/**
diff --git a/phpBB/install/install_update.php b/phpBB/install/install_update.php
index 388e217133..ccbad07e5b 100644
--- a/phpBB/install/install_update.php
+++ b/phpBB/install/install_update.php
@@ -915,6 +915,11 @@ class install_update extends module
// Now init the connection
if ($update_mode == 'download')
{
+ if (function_exists('phpbb_is_writable') && !phpbb_is_writable($phpbb_root_path . 'store/'))
+ {
+ trigger_error(sprintf($user->lang['DIRECTORY_NOT_WRITABLE'], $phpbb_root_path . 'store/'), E_USER_ERROR);
+ }
+
if ($use_method == '.zip')
{
$compress = new compress_zip('w', $phpbb_root_path . 'store/' . $archive_filename . $use_method);