Validate MQTT goodbye session id (#2023)

Co-authored-by: Codex <codex@local>
This commit is contained in:
3em0
2026-05-29 05:55:37 +08:00
committed by GitHub
parent 331d69b83b
commit e182471f8c

View File

@@ -114,8 +114,8 @@ bool MqttProtocol::StartMqttClient(bool report_error) {
ParseServerHello(root);
} else if (strcmp(type->valuestring, "goodbye") == 0) {
auto session_id = cJSON_GetObjectItem(root, "session_id");
ESP_LOGI(TAG, "Received goodbye message, session_id: %s", session_id ? session_id->valuestring : "null");
if (session_id == nullptr || session_id_ == session_id->valuestring) {
ESP_LOGI(TAG, "Received goodbye message, session_id: %s", cJSON_IsString(session_id) ? session_id->valuestring : "null");
if (cJSON_IsString(session_id) && session_id_ == session_id->valuestring) {
auto alive = alive_; // Capture alive flag
Application::GetInstance().Schedule([this, alive]() {
if (*alive) {