aboutsummaryrefslogtreecommitdiffstats
path: root/scd/apdu.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2017-11-23 14:12:45 +0000
committerWerner Koch <[email protected]>2017-11-23 14:12:45 +0000
commitfe96ca8d86881a611816a6de4047f00c69325ea5 (patch)
tree6d4a31ad49c34010b117dc5db7575877225ddb1b /scd/apdu.c
parentdoc: clarify that --encrypt refers to public key encryption (diff)
parentbuild: Update distsigkey.gpg (diff)
downloadgnupg-fe96ca8d86881a611816a6de4047f00c69325ea5.tar.gz
gnupg-fe96ca8d86881a611816a6de4047f00c69325ea5.zip
Merge branch 'STABLE-BRANCH-2-2'
-- Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'scd/apdu.c')
-rw-r--r--scd/apdu.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/scd/apdu.c b/scd/apdu.c
index 1b25ceb95..49c222acf 100644
--- a/scd/apdu.c
+++ b/scd/apdu.c
@@ -1498,8 +1498,13 @@ open_ccid_reader (struct dev_list *dl)
err = ccid_open_reader (dl->portstr, dl->idx, dl->ccid_table,
&slotp->ccid.handle, &slotp->rdrname);
if (!err)
- err = ccid_get_atr (slotp->ccid.handle,
- slotp->atr, sizeof slotp->atr, &slotp->atrlen);
+ {
+ err = ccid_get_atr (slotp->ccid.handle,
+ slotp->atr, sizeof slotp->atr, &slotp->atrlen);
+ if (err)
+ ccid_close_reader (slotp->ccid.handle);
+ }
+
if (err)
{
slotp->used = 0;