From ba7d256ecf9eddd70a52951e6a52d953c60eee79 Mon Sep 17 00:00:00 2001 From: Trevor Bentley Date: Thu, 29 Jun 2017 14:27:36 +0200 Subject: [PATCH] Fix test cases: uninitialized memory and non-terminated string compare --- ykcs11/tests/ykcs11_tests.c | 2 +- ykcs11/utils.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ykcs11/tests/ykcs11_tests.c b/ykcs11/tests/ykcs11_tests.c index 027ff51..385d005 100644 --- a/ykcs11/tests/ykcs11_tests.c +++ b/ykcs11/tests/ykcs11_tests.c @@ -138,7 +138,7 @@ static void test_token_info() { if (info.firmwareVersion.major != 4 && info.firmwareVersion.major != 0) asrt(info.firmwareVersion.major, 4, "FW_MAJ"); - asrt(strcmp(info.utcTime, TOKEN_TIME), 0, "TOKEN_TIME"); + asrt(strncmp(info.utcTime, TOKEN_TIME, sizeof(info.utcTime)), 0, "TOKEN_TIME"); asrt(funcs->C_Finalize(NULL), CKR_OK, "FINALIZE"); diff --git a/ykcs11/utils.c b/ykcs11/utils.c index ac4dcc8..f66d995 100644 --- a/ykcs11/utils.c +++ b/ykcs11/utils.c @@ -182,6 +182,7 @@ CK_RV create_token(ykpiv_state *state, CK_BYTE_PTR p, ykcs11_slot_t *slot) { t_info->ulFreePrivateMemory = CK_UNAVAILABLE_INFORMATION; + memset(&t_info->hardwareVersion, 0, sizeof(t_info->hardwareVersion)); // Ignore hardware version, report firmware version if (token.get_token_version(state, &t_info->firmwareVersion) != CKR_OK) { ykpiv_disconnect(state);