From f93ed32cb330b5084f5ae80be625ad9bf3c4a6b8 Mon Sep 17 00:00:00 2001 From: Chris Conlon Date: Wed, 20 Dec 2017 11:48:09 -0700 Subject: [PATCH] fix scanbuild issue, use of NULL pointer in wc_Sha256Update --- wolfcrypt/src/sha256.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/wolfcrypt/src/sha256.c b/wolfcrypt/src/sha256.c index 2f19b9274..cd0d1b3ad 100644 --- a/wolfcrypt/src/sha256.c +++ b/wolfcrypt/src/sha256.c @@ -58,6 +58,12 @@ if (sha == NULL || (data == NULL && len > 0)) { return BAD_FUNC_ARG; } + + if (data == NULL && len == 0) { + /* valid, but do nothing */ + return 0; + } + return Sha256Update_fips(sha, data, len); } int wc_Sha256Final(wc_Sha256* sha, byte* out) @@ -433,6 +439,11 @@ static int InitSha256(wc_Sha256* sha256) return BAD_FUNC_ARG; } + if (data == NULL && len == 0) { + /* valid arguments, but do nothing */ + return 0; + } + /* do block size increments */ local = (byte*)sha256->buffer; @@ -671,6 +682,11 @@ static INLINE void AddLength(wc_Sha256* sha256, word32 len) return BAD_FUNC_ARG; } + if (data == NULL && len == 0) { + /* valid, but do nothing */ + return 0; + } + #if defined(WOLFSSL_ASYNC_CRYPT) && defined(WC_ASYNC_ENABLE_SHA256) if (sha256->asyncDev.marker == WOLFSSL_ASYNC_MARKER_SHA256) { #if defined(HAVE_INTEL_QA)