patch 8.2.3032: build problems with MSVC, other crypt issues with libsodium
Problem: Build problems with MSVC, other crypt issues with libsodium.
Solution: Adjust MSVC makefile. Disable swap file only when 'key' is set.
Adjust error message used when key is wrong. Fix Coverity issues.
(Christian Brabandt, closes #8420, closes #8411)
diff --git a/src/memline.c b/src/memline.c
index 3b09a7d..f1c2a8a 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -497,7 +497,8 @@
return; // no memfile yet, nothing to do
old_method = crypt_method_nr_from_name(old_cm);
- if (old_method == CRYPT_M_SOD || crypt_get_method_nr(buf) == CRYPT_M_SOD)
+ // Swapfile encryption not supported by XChaCha20
+ if (crypt_get_method_nr(buf) == CRYPT_M_SOD && *buf->b_p_key != NUL)
{
// close the swapfile
mf_close_file(buf, TRUE);