From 363073658ae7dfa3186407a60b6f93ae02c4dc1a Mon Sep 17 00:00:00 2001 From: Xiaoxia Date: Wed, 6 Aug 2025 01:16:52 +0800 Subject: [PATCH] fix: OTA buffer overflow caused by slow SetChatMessage (#1031) --- main/application.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/main/application.cc b/main/application.cc index 0a11bd15..e6f52aff 100644 --- a/main/application.cc +++ b/main/application.cc @@ -118,9 +118,11 @@ void Application::CheckNewVersion(Ota& ota) { vTaskDelay(pdMS_TO_TICKS(1000)); bool upgrade_success = ota.StartUpgrade([display](int progress, size_t speed) { - char buffer[64]; - snprintf(buffer, sizeof(buffer), "%d%% %uKB/s", progress, speed / 1024); - display->SetChatMessage("system", buffer); + std::thread([display, progress, speed]() { + char buffer[32]; + snprintf(buffer, sizeof(buffer), "%d%% %uKB/s", progress, speed / 1024); + display->SetChatMessage("system", buffer); + }).detach(); }); if (!upgrade_success) {