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.
This commit is contained in:
Ben Kibbey 2012-01-25 18:14:51 -05:00
parent 001352077c
commit 3da10eefcb
1 changed files with 4 additions and 2 deletions

View File

@ -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)