From: NIIBE Yutaka Date: Thu, 23 May 2019 01:15:18 +0000 (+0900) Subject: agent: Stop scdaemon after reload when disable_scdaemon. X-Git-Tag: archive/raspbian/2.2.12-1+rpi1+deb10u2^2~28 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=7af673827b9aa481b07625bbdb9cafa6d2e0ec1c;p=gnupg2.git agent: Stop scdaemon after reload when disable_scdaemon. * agent/call-scd.c (agent_card_killscd): New. * agent/gpg-agent.c (agent_sighup_action): Call agent_card_killscd. -- GnuPG-bug-id: 4326 Signed-off-by: NIIBE Yutaka (cherry picked from commit 9ccdd59e4e1e0b0e3b03b288f52f3c71e86a04dd) Gbp-Pq: Topic from-2.2.16 Gbp-Pq: Name agent-Stop-scdaemon-after-reload-when-disable_scdaemon.patch --- diff --git a/agent/agent.h b/agent/agent.h index b07ea57..f047757 100644 --- a/agent/agent.h +++ b/agent/agent.h @@ -598,6 +598,7 @@ int agent_card_scd (ctrl_t ctrl, const char *cmdline, int (*getpin_cb)(void *, const char *, const char *, char*, size_t), void *getpin_cb_arg, void *assuan_context); +void agent_card_killscd (void); /*-- learncard.c --*/ diff --git a/agent/call-scd.c b/agent/call-scd.c index e852c0d..ee69bb4 100644 --- a/agent/call-scd.c +++ b/agent/call-scd.c @@ -1326,3 +1326,12 @@ agent_card_scd (ctrl_t ctrl, const char *cmdline, return unlock_scd (ctrl, 0); } + +void +agent_card_killscd (void) +{ + if (primary_scd_ctx == NULL) + return; + assuan_transact (primary_scd_ctx, "KILLSCD", + NULL, NULL, NULL, NULL, NULL, NULL); +} diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c index d68b5ad..16aa0d4 100644 --- a/agent/gpg-agent.c +++ b/agent/gpg-agent.c @@ -2452,6 +2452,9 @@ agent_sighup_action (void) "pinentry" binary that one can be used in case the "pinentry-basic" fallback was in use. */ gnupg_module_name_flush_some (); + + if (opt.disable_scdaemon) + agent_card_killscd (); }