diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Pgp.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Pgp.php index 162732e03..c58f46530 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Pgp.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Pgp.php @@ -23,6 +23,13 @@ trait Pgp \RainLoop\Providers\Storage\Enumerations\StorageType::PGP )) . '/.gnupg'; + if (!\is_dir($homedir)) { + \mkdir($homedir, 0700, true); + } + if (!\is_writable($homedir)) { + throw new \Exception("gpg homedir '{$homedir}' not writable"); + } + /** * Workaround error: socket name for '/very/long/path/to/.gnupg/S.gpg-agent.extra' is too long * BSD 4.4 max length = 104 diff --git a/snappymail/v/0.0.0/app/libraries/snappymail/pgp/gpg.php b/snappymail/v/0.0.0/app/libraries/snappymail/pgp/gpg.php index 6fc894479..19ff4f2c2 100644 --- a/snappymail/v/0.0.0/app/libraries/snappymail/pgp/gpg.php +++ b/snappymail/v/0.0.0/app/libraries/snappymail/pgp/gpg.php @@ -85,7 +85,7 @@ class GPG $this->options['homedir'] = \rtrim($homedir, '/\\'); // the random seed file makes subsequent actions faster so only disable it if we have to. - if ($this->options['homedir'] && !\is_writeable($this->options['homedir'])) { + if ($this->options['homedir'] && !\is_writable($this->options['homedir'])) { $this->options['no-random-seed-file'] = true; }