mirror of
https://github.com/esphome/esphome.git
synced 2026-09-19 11:08:38 +00:00
abd6a4f6a90ff1b8f6517ac1a0b11d7f12f93ef6
When Callback::create receives a function reference (e.g. void(&)(int)), &callable gives the address of the function's machine code, not a pointer variable. The memcpy then reads bytes from executable code memory instead of copying a function pointer value. Fix by decaying the callable into a local variable before memcpy, which converts function references to function pointers stored on the stack. No current callers trigger this bug (all pass lambdas), but this prevents incorrect behavior if bare function names are ever passed.
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
600 MiB
Languages
C++
55.7%
Python
43.7%
C
0.3%
JavaScript
0.2%
