From 4a8c2cfc56b9affc36934aa0f20d8cfd2b1511c8 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 19 Dec 2015 15:28:18 +0100 Subject: [PATCH] patch 7.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) --- src/memfile.c | 5 +++-- src/version.c | 2 ++ 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 @@ -741,6 +741,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 979, /**/ 978, /**/