diff --git a/ykcs11/utils.c b/ykcs11/utils.c index 11968eb..7053456 100644 --- a/ykcs11/utils.c +++ b/ykcs11/utils.c @@ -76,7 +76,7 @@ CK_RV parse_readers(ykpiv_state *state, const CK_BYTE_PTR readers, const CK_ULON } } (*n_slots)++; - p += i + 1; + p = readers + i + 1; } return CKR_OK; diff --git a/ykcs11/ykcs11.c b/ykcs11/ykcs11.c index b710ca7..19fd60b 100644 --- a/ykcs11/ykcs11.c +++ b/ykcs11/ykcs11.c @@ -51,7 +51,7 @@ CK_DEFINE_FUNCTION(CK_RV, C_Initialize)( ) { CK_BYTE readers[2048]; - CK_ULONG len = sizeof(readers); + size_t len = sizeof(readers); DIN; @@ -536,6 +536,7 @@ CK_DEFINE_FUNCTION(CK_RV, C_OpenSession)( session.info.state = CKS_RO_PUBLIC_SESSION; // Nobody has logged in, default RW session } + session.info.slotID = slotID; session.info.flags = flags; session.info.ulDeviceError = 0;