From f9c9938b28b68bb5b433c2de981b9f26af64c6a9 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Tue, 4 Jan 2022 14:56:29 +0900 Subject: [PATCH] scd,pcsc: Fix error handling for a reader with reader-port. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * scd/apdu.c (apdu_open_reader): Make sure dl->idx is always incremented to handle error from open_pcsc_reader correctly. -- Reported-by: Anže Jenšterle GnuPG-bug-id: 5758 Signed-off-by: NIIBE Yutaka --- scd/apdu.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/scd/apdu.c b/scd/apdu.c index 04bd3e2f3..574697cc1 100644 --- a/scd/apdu.c +++ b/scd/apdu.c @@ -2248,7 +2248,7 @@ apdu_open_reader (struct dev_list *dl) npth_mutex_lock (&reader_table_lock); while (dl->idx < dl->idx_max) { - const char *rdrname = pcsc.rdrname[dl->idx]; + const char *rdrname = pcsc.rdrname[dl->idx++]; if (DBG_READER) log_debug ("apdu_open_reader: %s\n", rdrname); @@ -2270,8 +2270,6 @@ apdu_open_reader (struct dev_list *dl) continue; slot = open_pcsc_reader (rdrname); - - dl->idx++; if (slot >= 0) { npth_mutex_unlock (&reader_table_lock); @@ -2284,8 +2282,6 @@ apdu_open_reader (struct dev_list *dl) continue; } } - else - dl->idx++; } npth_mutex_unlock (&reader_table_lock);