From 5adf7e4eb77ada5e549dbf3a3f38cd77e19a2d15 Mon Sep 17 00:00:00 2001 From: Daniel Pouzzner Date: Tue, 28 Jun 2022 19:14:58 -0500 Subject: [PATCH] wolfcrypt/src/asn.c wc_BuildEccKeyDer(): fix for clang-analyzer-deadcode.DeadStores. --- wolfcrypt/src/asn.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/wolfcrypt/src/asn.c b/wolfcrypt/src/asn.c index 4c08820fc..e75a65ce7 100644 --- a/wolfcrypt/src/asn.c +++ b/wolfcrypt/src/asn.c @@ -29351,17 +29351,19 @@ static int wc_BuildEccKeyDer(ecc_key* key, byte* output, word32 *inLen, SetASNItem_NoOutNode(dataASN, eccKeyASN, ECCKEYASN_IDX_PARAMS, eccKeyASN_Length); } - if (pubIn) { - /* Leave space for public key. */ - SetASN_Buffer(&dataASN[ECCKEYASN_IDX_PUBKEY_VAL], NULL, pubSz); + if (ret == 0) { + if (pubIn) { + /* Leave space for public key. */ + SetASN_Buffer(&dataASN[ECCKEYASN_IDX_PUBKEY_VAL], NULL, pubSz); + } + else { + /* Don't write out public key. */ + SetASNItem_NoOutNode(dataASN, eccKeyASN, ECCKEYASN_IDX_PUBKEY, + eccKeyASN_Length); + } + /* Calculate size of the private key encoding. */ + ret = SizeASN_Items(eccKeyASN, dataASN, eccKeyASN_Length, &sz); } - else { - /* Don't write out public key. */ - SetASNItem_NoOutNode(dataASN, eccKeyASN, ECCKEYASN_IDX_PUBKEY, - eccKeyASN_Length); - } - /* Calculate size of the private key encoding. */ - ret = SizeASN_Items(eccKeyASN, dataASN, eccKeyASN_Length, &sz); } /* Return the size if no buffer. */ if ((ret == 0) && (output == NULL)) {