From 2bd4b9f72125e60206027613f69361775d3b0210 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Wed, 14 Oct 2026 01:39:00 -0500 Subject: [PATCH] Add missing checks for X509 parsing failures --- app/backend/nvpairingmanager.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/backend/nvpairingmanager.cpp b/app/backend/nvpairingmanager.cpp index 82a67b7e..9b0a57a2 100644 --- a/app/backend/nvpairingmanager.cpp +++ b/app/backend/nvpairingmanager.cpp @@ -140,6 +140,9 @@ NvPairingManager::getSignatureFromPemCert(const QByteArray& certificate) X509* cert = PEM_read_bio_X509(bio, nullptr, nullptr, nullptr); BIO_free_all(bio); + if (cert == nullptr) { + return QByteArray(); + } QByteArray signature = getSignatureFromCert(cert); X509_free(cert); @@ -159,9 +162,15 @@ NvPairingManager::verifySignature(const QByteArray& data, const QByteArray& sign X509* cert = PEM_read_bio_X509(bio, nullptr, nullptr, nullptr); BIO_free_all(bio); + if (cert == nullptr) { + return false; + } EVP_PKEY* pubKey = X509_get_pubkey(cert); - THROW_BAD_ALLOC_IF_NULL(pubKey); + if (pubKey == nullptr) { + X509_free(cert); + return false; + } EVP_MD_CTX* mdctx = EVP_MD_CTX_create(); THROW_BAD_ALLOC_IF_NULL(mdctx);