From 3da10eefcb09a520f11e4fae7f59a33f80ffba69 Mon Sep 17 00:00:00 2001 From: Ben Kibbey Date: Wed, 25 Jan 2012 18:14:51 -0500 Subject: [PATCH] Also check for GPG_ERR_ASS_CANCELED during an inquire. Fix pinentry-mode=loopback when cancelling an inquire from scdaemon. This is similar to commit 4f21f8d but for both protocol command cancellation and pinentry cancellation. * agent/call-scd.c (agent_card_pkdecrypt): Check for GPG_ERR_ASS_CANCELED. (agent_card_pksign): Ditto. --- agent/call-scd.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/agent/call-scd.c b/agent/call-scd.c index ccdb637d4..f9ededb72 100644 --- a/agent/call-scd.c +++ b/agent/call-scd.c @@ -870,7 +870,8 @@ agent_card_pksign (ctrl_t ctrl, membuf_data_cb, &data, inq_needpin, &inqparm, NULL, NULL); - if (inqparm.any_inq_seen && gpg_err_code(rc) == GPG_ERR_CANCELED) + if (inqparm.any_inq_seen && (gpg_err_code(rc) == GPG_ERR_CANCELED || + gpg_err_code(rc) == GPG_ERR_ASS_CANCELED)) rc = cancel_inquire (ctrl, rc); if (rc) @@ -949,7 +950,8 @@ agent_card_pkdecrypt (ctrl_t ctrl, membuf_data_cb, &data, inq_needpin, &inqparm, NULL, NULL); - if (inqparm.any_inq_seen && gpg_err_code(rc) == GPG_ERR_CANCELED) + if (inqparm.any_inq_seen && (gpg_err_code(rc) == GPG_ERR_CANCELED || + gpg_err_code(rc) == GPG_ERR_ASS_CANCELED)) rc = cancel_inquire (ctrl, rc); if (rc)