From 63031b2193b35cd6d46d5ef14206fa1cb8539b7f Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Thu, 25 Feb 2021 19:28:30 +0100 Subject: [PATCH] pkcs11-tool: Avoid strict-aliasing issues on 32b architectures --- src/tools/pkcs11-tool.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/tools/pkcs11-tool.c b/src/tools/pkcs11-tool.c index fb786b0c..ef982a2b 100644 --- a/src/tools/pkcs11-tool.c +++ b/src/tools/pkcs11-tool.c @@ -6303,11 +6303,12 @@ static CK_SESSION_HANDLE test_kpgen_certwrite(CK_SLOT_ID slot, CK_SESSION_HANDLE return session; } - tmp = getID(session, priv_key, (CK_ULONG *) &opt_object_id_len); - if (opt_object_id_len == 0) { + tmp = getID(session, priv_key, &i); + if (i == 0) { fprintf(stderr, "ERR: newly generated private key has no (or an empty) CKA_ID\n"); return session; } + opt_object_id_len = (size_t) i; memcpy(opt_object_id, tmp, opt_object_id_len); /* This is done in NSS */ @@ -6485,11 +6486,12 @@ static void test_ec(CK_SLOT_ID slot, CK_SESSION_HANDLE session) if (!gen_keypair(slot, session, &pub_key, &priv_key, opt_key_type)) return; - tmp = getID(session, priv_key, (CK_ULONG *) &opt_object_id_len); - if (opt_object_id_len == 0) { + tmp = getID(session, priv_key, &i); + if (i == 0) { printf("ERR: newly generated private key has no (or an empty) CKA_ID\n"); return; } + i = (size_t) opt_object_id_len; memcpy(opt_object_id, tmp, opt_object_id_len); /* This is done in NSS */