diff --git a/lib/ykpiv.c b/lib/ykpiv.c index 67d8f79..b1b0a1f 100644 --- a/lib/ykpiv.c +++ b/lib/ykpiv.c @@ -520,6 +520,8 @@ ykpiv_rc ykpiv_list_readers(ykpiv_state *state, char *readers, size_t *len) { if (num_readers > *len) { num_readers = (pcsc_word)*len; + } else if (num_readers < *len) { + *len = (size_t)num_readers; } rc = SCardListReaders(state->context, NULL, readers, &num_readers); diff --git a/ykcs11/ykcs11.c b/ykcs11/ykcs11.c index 6bbdb1a..9a817bf 100644 --- a/ykcs11/ykcs11.c +++ b/ykcs11/ykcs11.c @@ -86,6 +86,8 @@ CK_DEFINE_FUNCTION(CK_RV, C_Initialize)( DIN; + memset(readers, '\0', sizeof(readers)); + if (piv_state != NULL) return CKR_CRYPTOKI_ALREADY_INITIALIZED;