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
|
* finalize() method, but I didn't want this keyring hack
|
||||||
* bleeding into multiple classes. */
|
* bleeding into multiple classes. */
|
||||||
|
|
||||||
|
ot_gpgme_kill_agent (tmp_dir);
|
||||||
(void) glnx_shutil_rm_rf_at (AT_FDCWD, tmp_dir, NULL, NULL);
|
(void) glnx_shutil_rm_rf_at (AT_FDCWD, tmp_dir, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2300,11 +2300,15 @@ out:
|
||||||
if (remote != NULL)
|
if (remote != NULL)
|
||||||
ostree_remote_unref (remote);
|
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);
|
(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);
|
(void) glnx_shutil_rm_rf_at (AT_FDCWD, target_tmp_dir, NULL, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
g_prefix_error (error, "GPG: ");
|
g_prefix_error (error, "GPG: ");
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue