From 6422e052df42009fecbfc5b329a9bef31ce91dd1 Mon Sep 17 00:00:00 2001 From: Peter Woolery Date: Tue, 14 Apr 2026 06:26:20 -0700 Subject: [PATCH] =?UTF-8?q?fix:=20ble=5Fscanner=20sha256=5Fprefix=20?= =?UTF-8?q?=E2=80=94=20guard=20mbedTLS=20null=20info=20and=20setup=20failu?= =?UTF-8?q?re?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/src/ble_scanner.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/firmware/src/ble_scanner.cpp b/firmware/src/ble_scanner.cpp index 0b33e89..6534980 100644 --- a/firmware/src/ble_scanner.cpp +++ b/firmware/src/ble_scanner.cpp @@ -20,15 +20,21 @@ static std::map s_seen; static int s_max_concurrent = 0; static String sha256_prefix(const String& input) { - uint8_t hash[32]; - mbedtls_md_context_t ctx; const mbedtls_md_info_t* info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA256); + if (!info) return String(); // SHA256 not available + + uint8_t hash[32] = {}; + mbedtls_md_context_t ctx; mbedtls_md_init(&ctx); - mbedtls_md_setup(&ctx, info, 0); + if (mbedtls_md_setup(&ctx, info, 0) != 0) { + mbedtls_md_free(&ctx); + return String(); + } mbedtls_md_starts(&ctx); mbedtls_md_update(&ctx, (const uint8_t*)input.c_str(), input.length()); mbedtls_md_finish(&ctx, hash); mbedtls_md_free(&ctx); + String hex = ""; char buf[3]; for (int i = 0; i < 16; i++) { snprintf(buf, 3, "%02x", hash[i]); hex += buf; }