From f67ca8aac5ba14d55fbdeb29f71b91943d5e1631 Mon Sep 17 00:00:00 2001 From: olszomal Date: Thu, 12 Jan 2023 12:58:02 +0100 Subject: [PATCH] Fix unchecked return value, CID 1519390 --- osslsigncode.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/osslsigncode.c b/osslsigncode.c index 2e5beca..8cfe9b1 100644 --- a/osslsigncode.c +++ b/osslsigncode.c @@ -1572,7 +1572,7 @@ static u_char *pe_calc_page_hash(char *indata, uint32_t header_size, if (!EVP_DigestInit(mdctx, md)) { EVP_MD_CTX_free(mdctx); printf("Unable to set up the digest context\n"); - return NULL; /* FAILED */ + return NULL; /* FAILED */ } nsections = GET_UINT16_LE(indata + header_size + 6); pagesize = GET_UINT32_LE(indata + header_size + 56); @@ -1598,7 +1598,13 @@ static u_char *pe_calc_page_hash(char *indata, uint32_t header_size, ro = GET_UINT32_LE(sections + 20); for (l=0; l < rs; l+=pagesize, pi++) { PUT_UINT32_LE(ro + l, res + pi*pphlen); - EVP_DigestInit(mdctx, md); + if (!EVP_DigestInit(mdctx, md)) { + EVP_MD_CTX_free(mdctx); + OPENSSL_free(res); + OPENSSL_free(zeroes); + printf("Unable to set up the digest context\n"); + return NULL; /* FAILED */ + } if (rs - l < pagesize) { EVP_DigestUpdate(mdctx, indata + ro + l, rs - l); EVP_DigestUpdate(mdctx, zeroes, pagesize - (rs - l));