diff options
author | Ben Kibbey <bjk@luxsci.net> | 2011-07-09 14:25:22 +0200 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2011-07-27 10:58:52 +0200 |
commit | 29af48840f1f5d39fae8ad7942f3676936134996 (patch) | |
tree | e34f2384feb12cf5649e5e4f1fb35fe18a7cdbbc /agent/call-scd.c | |
parent | Fix crash while reading unsupported ssh keys. (diff) | |
download | gnupg2-29af48840f1f5d39fae8ad7942f3676936134996.tar.xz gnupg2-29af48840f1f5d39fae8ad7942f3676936134996.zip |
Fixed gpg-agent SCD inquire command cancellation.
Need to send the CANCEL command back to scdaemon otherwise the next SCD
command will fail.
Diffstat (limited to '')
-rw-r--r-- | agent/call-scd.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/agent/call-scd.c b/agent/call-scd.c index 710589f72..1ffb1239e 100644 --- a/agent/call-scd.c +++ b/agent/call-scd.c @@ -1175,6 +1175,19 @@ agent_card_scd (ctrl_t ctrl, const char *cmdline, pass_data_thru, assuan_context, inq_needpin, &inqparm, pass_status_thru, assuan_context); + if (gpg_err_code(rc) == GPG_ERR_ASS_CANCELED) + { + rc = assuan_write_line(ctrl->scd_local->ctx, "CAN"); + if (!rc) { + char *line; + size_t len; + + rc = assuan_read_line(ctrl->scd_local->ctx, &line, &len); + if (!rc) + rc = gpg_error(GPG_ERR_ASS_CANCELED); + } + } + assuan_set_flag (ctrl->scd_local->ctx, ASSUAN_CONVEY_COMMENTS, saveflag); if (rc) { |