summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2015-12-19 15:28:18 +0100
committerBram Moolenaar <Bram@vim.org>2015-12-19 15:28:18 +0100
commit4a8c2cfc56b9affc36934aa0f20d8cfd2b1511c8 (patch)
treea3066ea09e833e502962ebb7344216bbcb1d00c2
parentc42b9c670ea621d4dac0f216e011a6db576c5136 (diff)
patch 7.4.979v7.4.979
Problem: When changing the crypt key the blocks read from disk are not decrypted. Solution: Also call ml_decrypt_data() when mf_old_key is set. (Ken Takata)
-rw-r--r--src/memfile.c5
-rw-r--r--src/version.c2
2 files changed, 5 insertions, 2 deletions
diff --git a/src/memfile.c b/src/memfile.c
index a21b7076ae..5b13d510ea 100644
--- a/src/memfile.c
+++ b/src/memfile.c
@@ -1032,8 +1032,9 @@ mf_read(mfp, hp)
}
#ifdef FEAT_CRYPT
- /* Decrypt if 'key' is set and this is a data block. */
- if (*mfp->mf_buffer->b_p_key != NUL)
+ /* Decrypt if 'key' is set and this is a data block. And when changing the
+ * key. */
+ if (*mfp->mf_buffer->b_p_key != NUL || mfp->mf_old_key != NULL)
ml_decrypt_data(mfp, hp->bh_data, offset, size);
#endif
diff --git a/src/version.c b/src/version.c
index f1bf8733e4..f949e64273 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 979,
+/**/
978,
/**/
977,