mirror of
https://github.com/esphome/esphome.git
synced 2026-09-14 00:28:39 +00:00
884dab4a6a98bc125976d3dd7ed8bf2ea9b3f90b
Restore the cached_sock_ = nullptr assignment inside close() on the fast-select path. The lwip slot can be recycled for a new connection as soon as the underlying close() returns, so any dereference of cached_sock_ afterwards would touch an unrelated socket's pcb. No current caller does this — setsockopt(TCP_NODELAY) and ready() are the only consumers and neither is invoked post-close today — but leaving the pointer dangling is a footgun for future changes. The fd_ = -1 sentinel alone would catch the ready() path via closed semantics, but setsockopt() reaches cached_sock_ directly and would not be protected. Null the pointer so the protection is by construction rather than by caller discipline.
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
594 MiB
Languages
C++
55.8%
Python
43.6%
C
0.3%
JavaScript
0.2%
