diff --git a/esphome/components/esp32/preferences.cpp b/esphome/components/esp32/preferences.cpp index 240b834b8d..08439746b6 100644 --- a/esphome/components/esp32/preferences.cpp +++ b/esphome/components/esp32/preferences.cpp @@ -23,7 +23,7 @@ struct NVSData { size_t len; void set_data(const uint8_t *src, size_t size) { - if (this->len != size) { + if (!this->data || this->len != size) { this->data = std::make_unique(size); this->len = size; } diff --git a/esphome/components/libretiny/preferences.cpp b/esphome/components/libretiny/preferences.cpp index e08b4d6df3..68bc279767 100644 --- a/esphome/components/libretiny/preferences.cpp +++ b/esphome/components/libretiny/preferences.cpp @@ -22,7 +22,7 @@ struct NVSData { size_t len; void set_data(const uint8_t *src, size_t size) { - if (this->len != size) { + if (!this->data || this->len != size) { this->data = std::make_unique(size); this->len = size; }