lib: Kill GPG agent when cleaning up tmp homedirs
When a temporary directory is used for GPG operations, it's pretty clear that the running agent will be useless after the directory is deleted. Call the new `ot_gpgme_kill_agent ()` helper to kill gpg-agent rather than leaving them it hanging around forever. As it turns out, gnupg does have code to make gpg-agent automatically exit when the homedir is removed (https://dev.gnupg.org/T2756), but that's only available on gnupg 2.2 or newer. Possibly this code can be dropped later when that's more widely deployed or users/distros have been advised to backport the necessary changes. Closes: #1799 Approved by: cgwalters
This commit is contained in:
parent
4670837f7c
commit
b6979e7572
|
|
@ -87,6 +87,7 @@ verify_result_finalized_cb (gpointer data,
|
|||
* finalize() method, but I didn't want this keyring hack
|
||||
* bleeding into multiple classes. */
|
||||
|
||||
ot_gpgme_kill_agent (tmp_dir);
|
||||
(void) glnx_shutil_rm_rf_at (AT_FDCWD, tmp_dir, NULL, NULL);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2300,11 +2300,15 @@ out:
|
|||
if (remote != NULL)
|
||||
ostree_remote_unref (remote);
|
||||
|
||||
if (source_tmp_dir != NULL)
|
||||
if (source_tmp_dir != NULL) {
|
||||
ot_gpgme_kill_agent (source_tmp_dir);
|
||||
(void) glnx_shutil_rm_rf_at (AT_FDCWD, source_tmp_dir, NULL, NULL);
|
||||
}
|
||||
|
||||
if (target_tmp_dir != NULL)
|
||||
if (target_tmp_dir != NULL) {
|
||||
ot_gpgme_kill_agent (target_tmp_dir);
|
||||
(void) glnx_shutil_rm_rf_at (AT_FDCWD, target_tmp_dir, NULL, NULL);
|
||||
}
|
||||
|
||||
g_prefix_error (error, "GPG: ");
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue