mirror of
https://github.com/esphome/esphome.git
synced 2025-07-29 14:46:40 +00:00
debug: bufferoverflow mitigation in DebugComponent::on_shutdown() (#9422)
This commit is contained in:
parent
a240f0af90
commit
7d92499e4c
@ -53,6 +53,7 @@ void DebugComponent::on_shutdown() {
|
|||||||
auto pref = global_preferences->make_preference(REBOOT_MAX_LEN, fnv1_hash(REBOOT_KEY + App.get_name()));
|
auto pref = global_preferences->make_preference(REBOOT_MAX_LEN, fnv1_hash(REBOOT_KEY + App.get_name()));
|
||||||
if (component != nullptr) {
|
if (component != nullptr) {
|
||||||
strncpy(buffer, component->get_component_source(), REBOOT_MAX_LEN - 1);
|
strncpy(buffer, component->get_component_source(), REBOOT_MAX_LEN - 1);
|
||||||
|
buffer[REBOOT_MAX_LEN - 1] = '\0';
|
||||||
}
|
}
|
||||||
ESP_LOGD(TAG, "Storing reboot source: %s", buffer);
|
ESP_LOGD(TAG, "Storing reboot source: %s", buffer);
|
||||||
pref.save(&buffer);
|
pref.save(&buffer);
|
||||||
@ -68,6 +69,7 @@ std::string DebugComponent::get_reset_reason_() {
|
|||||||
auto pref = global_preferences->make_preference(REBOOT_MAX_LEN, fnv1_hash(REBOOT_KEY + App.get_name()));
|
auto pref = global_preferences->make_preference(REBOOT_MAX_LEN, fnv1_hash(REBOOT_KEY + App.get_name()));
|
||||||
char buffer[REBOOT_MAX_LEN]{};
|
char buffer[REBOOT_MAX_LEN]{};
|
||||||
if (pref.load(&buffer)) {
|
if (pref.load(&buffer)) {
|
||||||
|
buffer[REBOOT_MAX_LEN - 1] = '\0';
|
||||||
reset_reason = "Reboot request from " + std::string(buffer);
|
reset_reason = "Reboot request from " + std::string(buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user