summaryrefslogtreecommitdiff
path: root/src/password-store.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/password-store.sh')
-rwxr-xr-xsrc/password-store.sh15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/password-store.sh b/src/password-store.sh
index 8c6c9c5..dfd59fe 100755
--- a/src/password-store.sh
+++ b/src/password-store.sh
@@ -163,11 +163,16 @@ clip() {
echo "Copied $2 to clipboard. Will clear in $CLIP_TIME seconds."
}
tmpdir() {
+ [[ -n $SECURE_TMPDIR ]] && return
local warn=1
[[ $1 == "nowarn" ]] && warn=0
local template="$PROGRAM.XXXXXXXXXXXXX"
if [[ -d /dev/shm && -w /dev/shm && -x /dev/shm ]]; then
SECURE_TMPDIR="$(TMPDIR=/dev/shm mktemp -d -t "$template")"
+ remove_tmpfile() {
+ rm -rf "$SECURE_TMPDIR"
+ }
+ trap remove_tmpfile INT TERM EXIT
else
[[ $warn -eq 1 ]] && yesno "$(cat <<-_EOF
Your system does not have /dev/shm, which means that it may
@@ -178,6 +183,11 @@ tmpdir() {
_EOF
)"
SECURE_TMPDIR="$(mktemp -d -t "$template")"
+ shred_tmpfile() {
+ find "$SECURE_TMPDIR" -type f -exec $SHRED {} +
+ rm -rf "$SECURE_TMPDIR"
+ }
+ trap shred_tmpfile INT TERM EXIT
fi
}
@@ -413,11 +423,6 @@ cmd_edit() {
tmpdir #Defines $SECURE_TMPDIR
local tmp_file="$(TMPDIR="$SECURE_TMPDIR" mktemp -t "$template")"
- eval "shred_tmpfile() {
- $SHRED '$tmp_file'
- rm -rf '$SECURE_TMPDIR' '$tmp_file'
- }"
- trap shred_tmpfile INT TERM EXIT
local action="Add"
eletions'>-3/+3 2018-06-24Simplify filename matching in redact_pass.vimTom Ryder2-40/+11 2018-06-14version: bump1.7.2Jason A. Donenfeld1-1/+1 2018-06-14show: buffer output before displaying, in case decryption failsJason A. Donenfeld1-2/+4 2018-06-14Close stdout for background task that restores clipboardAllan Odgaard3-3/+3 2018-06-14Don't trap INT or TERM; they are redundant and can break `pass edit`.Nick Kousu1-2/+2 2018-06-14tests: fix compatibility with GnuPG 2.2.5Clément Lassieur1-1/+1 2018-06-14Add tests and documentation of passing options to grep(1)Norbert Buchmueller3-5/+18 2018-06-14Ensure signature regexes are anchoredJason A. Donenfeld1-4/+4 2018-06-10Replace noplaintext.vim as redact_pass.vim pluginTom Ryder3-46/+121 2018-05-24grep: allow grep options and argumentsSitaram Chamarty1-3/+3 2018-02-19fish: reduce completion runtimesMathis Antony1-14/+13 2018-02-08generate: disallow zero length generated passwordsJason A. Donenfeld1-1/+2 2018-02-01generate: in-place should work when file is emptyJason A. Donenfeld1-1/+1 2017-12-18Quote array specifierJason A. Donenfeld1-1/+1 2017-10-13protect dirname calls from pass-names that look like command-line optionsStacey Sheldon1-6/+6 2017-09-15passmenu: Don't eat whitespace at beginning/end of passwordDaniel Lublin1-1/+1 2017-08-29emacs: Release version 1.0.1 of Emacs packageSvend Sorensen2-5/+10 2017-08-29emacs: --run-async: Quote shell argumentsDamien Cassou1-4/+5 2017-08-29emacs: Update author's email addressSvend Sorensen1-2/+2 2017-08-29emacs: Fix package-lint violationsSvend Sorensen1-2/+3 2017-07-26emacs: Release version 1.0.0 of Emacs packageSvend Sorensen2-1/+8 2017-07-26emacs: Use with-editor to wrap "pass edit"Svend Sorensen2-9/+17 2017-04-13Bump version1.7.1Jason A. Donenfeld1-1/+1 2017-04-13init: match only the public keyJason A. Donenfeld1-1/+1 2017-03-28Use $GPG variableJason A. Donenfeld1-3/+3 2017-03-20Fix compatibility with GnuPG 2.2.19Andreas Stieger2-2/+2 2017-03-01tests: fix on OSX by not using the tr hackJason A. Donenfeld3-5/+2 2017-02-26Bump version1.7Jason A. Donenfeld1-1/+1 2017-02-26Modernize makefileJason A. Donenfeld2-31/+36 2017-02-25CopyrightJason A. Donenfeld1-1/+1 2017-02-25StyleJason A. Donenfeld1-2/+2 2017-02-25git: use inner-most directoryJason A. Donenfeld2-27/+48 2017-02-25clip: sleep may require argv[0] to be sleepJason A. Donenfeld1-1/+1 2017-02-25man: document system extensionsJason A. Donenfeld1-2/+3