From 81db42942c22c7442936784f099bfcb37de21c1d Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sun, 29 Jun 2025 16:16:53 -0500 Subject: [PATCH] Fix crash when event last_event_type is null in web_server --- esphome/components/web_server/web_server.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/esphome/components/web_server/web_server.cpp b/esphome/components/web_server/web_server.cpp index 9f42253794..32027561c7 100644 --- a/esphome/components/web_server/web_server.cpp +++ b/esphome/components/web_server/web_server.cpp @@ -1684,11 +1684,14 @@ void WebServer::handle_event_request(AsyncWebServerRequest *request, const UrlMa } std::string WebServer::event_state_json_generator(WebServer *web_server, void *source) { - return web_server->event_json((event::Event *) (source), *(((event::Event *) (source))->last_event_type), - DETAIL_STATE); + event::Event *event = (event::Event *) source; + const std::string event_type = event->last_event_type ? *event->last_event_type : ""; + return web_server->event_json(event, event_type, DETAIL_STATE); } std::string WebServer::event_all_json_generator(WebServer *web_server, void *source) { - return web_server->event_json((event::Event *) (source), *(((event::Event *) (source))->last_event_type), DETAIL_ALL); + event::Event *event = (event::Event *) source; + const std::string event_type = event->last_event_type ? *event->last_event_type : ""; + return web_server->event_json(event, event_type, DETAIL_ALL); } std::string WebServer::event_json(event::Event *obj, const std::string &event_type, JsonDetail start_config) { return json::build_json([this, obj, event_type, start_config](JsonObject root) {