J. Nick Koston 7bb1ae6520 [mdns] Guard LEAmDNS main loop calls against lwIP re-entrancy on ESP8266
LEAmDNS update() and close() can yield inside UdpContext::sendTimeout()
while a send fails; an mDNS packet arriving then re-enters LEAmDNS from
lwIP on the same UdpContext and both sides free the same tx pbufs, which
corrupts the heap and shows up later as crashes such as the NULL
dereference in noise_handshakestate_new during the API handshake.

mdns_esp8266.cpp now owns a MDNSResponder subclass (NO_GLOBAL_MDNS) whose
receive handler only counts packets while a main loop call is running and
drains them from the main loop afterwards. The roaming gate from #18785
and the is_roaming() accessor it needed are no longer required.
2026-09-05 21:12:08 +02:00
2023-06-12 17:00:34 +12:00
2022-09-06 15:48:01 +12:00
2024-03-28 10:20:51 +13:00
2025-12-08 14:37:45 -05:00
2026-09-03 13:07:21 +12:00
S
Description
ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
Readme Multiple Licenses
591 MiB
Languages
C++ 55.8%
Python 43.6%
C 0.3%
JavaScript 0.2%