diff --git a/virtualsmartcard/src/pcsclite-vpcd/winscard.c b/virtualsmartcard/src/pcsclite-vpcd/winscard.c index 8776d44..bd91697 100644 --- a/virtualsmartcard/src/pcsclite-vpcd/winscard.c +++ b/virtualsmartcard/src/pcsclite-vpcd/winscard.c @@ -541,7 +541,7 @@ PCSC_API LONG SCardListReaders(SCARDCONTEXT hContext, LPCSTR mszGroups, LPSTR ms SET_R_TEST( autoallocate(mszReaders, pcchReaders, - (MAX_READERNAME+1)*PCSCLITE_MAX_READERS_CONTEXTS, + (MAX_READERNAME+1)*PCSCLITE_MAX_READERS_CONTEXTS+1, (void **) &readers)); @@ -560,6 +560,12 @@ PCSC_API LONG SCardListReaders(SCARDCONTEXT hContext, LPCSTR mszGroups, LPSTR ms readerslen++; } + /* write a null character as final delimiter */ + if (readers) { + readers[readerslen] = '\0'; + } + readerslen++; + *pcchReaders = readerslen; if (!readerslen) {