summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rwxr-xr-xlib/keyringer/actions/edit14
2 files changed, 15 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 029a546..e4e7ede 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
2014-05-16 - Silvio Rhatto <rhatto@riseup.net>
+ Workaround for open/edit action returning instantaneously (#49)
+
Use 'nobackup' and 'nowritebackup' if VIM is set as $EDITOR (#50)
Find: rollback: use find+grep instead of 'find -iname' (#53)
diff --git a/lib/keyringer/actions/edit b/lib/keyringer/actions/edit
index 576bb67..63017d5 100755
--- a/lib/keyringer/actions/edit
+++ b/lib/keyringer/actions/edit
@@ -38,11 +38,23 @@ fi
# Prompt
echo "Press any key to open the decrypted data with $APP, Ctrl-C to abort"
-echo "WARNING: please make sure that $APP doesn't leak data to external applications os files"
+echo "WARNING: please make sure that $APP doesn't leak data to external applications or files"
read key
$APP "$TMPWORK"
+
+# Wait for background process to finish
wait
+# Workaround for some applications running in client/server mode, handling open file requests
+# to a daemon and exiting immediatelly, making keyringer guess the editing is over and the file
+# must be encrypted again (See #49).
+#
+# Thus, we cannot just wipe the file and exit keyringer, as the user might have a buffered copy
+# of the unencrypted file in the application, which can lead to information leakage if the user
+# saves the file and leaves the editor.
+echo "Press any key when done using the file and you're sure that $APP is closed."
+read -n 1
+
# Encrypt again
export KEYRINGER_ADD_EXTENSION=false
keyringer_exec encrypt "$BASEDIR" "$FILE" "$TMPWORK"