aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEric Wild <ewild@sysmocom.de>2019-10-31 19:18:45 +0100
committerHarald Welte <laforge@osmocom.org>2019-12-09 12:54:43 +0100
commit94cd4acef867fa123b8d834592a7824c43ede492 (patch)
tree6352c8b52d1f716da74fece04b01522ac1c42619 /src
parent49ddef610a003f1000422284bf31a653249cf09e (diff)
sim: allow opening reader# > 0
Diffstat (limited to 'src')
-rw-r--r--src/sim/reader_pcsc.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/sim/reader_pcsc.c b/src/sim/reader_pcsc.c
index f22103f4..9e05e3c0 100644
--- a/src/sim/reader_pcsc.c
+++ b/src/sim/reader_pcsc.c
@@ -79,17 +79,18 @@ static struct osim_reader_hdl *pcsc_reader_open(int num, const char *id, void *c
rc = SCardListReaders(st->hContext, NULL, (LPSTR)&mszReaders, &dwReaders);
PCSC_ERROR(rc, "SCardListReaders");
+ /* SCARD_S_SUCCESS means there is at least one reader in the group */
num_readers = 0;
ptr = mszReaders;
- while (*ptr != '\0') {
+ while (*ptr != '\0' && num_readers != num) {
ptr += strlen(ptr)+1;
num_readers++;
}
- if (num_readers == 0)
+ if (num != num_readers)
goto end;
- st->name = talloc_strdup(rh, mszReaders);
+ st->name = talloc_strdup(rh, ptr);
st->dwActiveProtocol = -1;
return rh;