From a9c0689786591dc45d319d9e3ae8d42e1b4594a7 Mon Sep 17 00:00:00 2001 From: Michael Dawson Date: Fri, 25 Feb 2022 16:38:07 -0500 Subject: [PATCH] crypto: fix return type prob reported by coverity MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Coverity correctly reported that the value returned by BIO_get_mem_data could be negative and the type provided for the return value was unsigned. Fix up the type and check. Signed-off-by: Michael Dawson PR-URL: https://github.com/nodejs/node/pull/42135 Reviewed-By: Tobias Nießen Reviewed-By: Darshan Sen --- src/crypto/crypto_common.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/crypto/crypto_common.cc b/src/crypto/crypto_common.cc index 3ec1152adc0f2a..1e0fa4f0661de7 100644 --- a/src/crypto/crypto_common.cc +++ b/src/crypto/crypto_common.cc @@ -741,9 +741,10 @@ static bool PrintGeneralName(const BIOPointer& out, const GENERAL_NAME* gen) { return false; } char* oline = nullptr; - size_t n_bytes = BIO_get_mem_data(tmp.get(), &oline); + long n_bytes = BIO_get_mem_data(tmp.get(), &oline); // NOLINT(runtime/int) + CHECK_GE(n_bytes, 0); CHECK_IMPLIES(n_bytes != 0, oline != nullptr); - PrintAltName(out, oline, n_bytes, true, nullptr); + PrintAltName(out, oline, static_cast(n_bytes), true, nullptr); } else if (gen->type == GEN_IPADD) { BIO_printf(out.get(), "IP Address:"); const ASN1_OCTET_STRING* ip = gen->d.ip;