From ed0328d49ad7d3361e608330205c92a06a508d06 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Tue, 26 Mar 2013 08:43:15 +0900 Subject: [PATCH] scd: call update_card_removed only when detecting removal. * scd/command.c (update_reader_status_file): Add condition ss->status == 0. -- To reproduce the bug: (1) insert card, (2) run "gpg2 --card-status", (3) remove card, (4) invoke "gpg2 --card-edit", (5) invoke some command like "verify" The last step fails (but with no error message to user). --- scd/command.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/scd/command.c b/scd/command.c index e45153f1b..fc1f5a20e 100644 --- a/scd/command.c +++ b/scd/command.c @@ -2310,10 +2310,8 @@ update_reader_status_file (int set_card_removed_flag) xfree (homestr); } - /* Set the card removed flag for all current sessions. We - will set this on any card change because a reset or - SERIALNO request must be done in any case. */ - if (ss->any && set_card_removed_flag) + /* Set the card removed flag for all current sessions. */ + if (ss->any && ss->status == 0 && set_card_removed_flag) update_card_removed (idx, 1); ss->any = 1;