From: Ivan Grokhotkov Date: Mon, 22 Aug 2016 03:58:13 +0000 (+0800) Subject: components/nvs: clear handles list on init, fix returning *length in nvs_get_{str... X-Git-Tag: v0.9~91^2~5 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7447d0860513dc8e87532e5958a8b29a08a818bf;p=esp-idf components/nvs: clear handles list on init, fix returning *length in nvs_get_{str,blob} --- diff --git a/components/nvs_flash/src/nvs_api.cpp b/components/nvs_flash/src/nvs_api.cpp index 041dc9e46e..f9292e680e 100644 --- a/components/nvs_flash/src/nvs_api.cpp +++ b/components/nvs_flash/src/nvs_api.cpp @@ -56,6 +56,7 @@ extern "C" esp_err_t nvs_flash_init(uint32_t baseSector, uint32_t sectorCount) Lock::init(); Lock lock; NVS_DEBUGV("%s %d %d\r\n", __func__, baseSector, sectorCount); + s_nvs_handles.clear(); return s_nvs_storage.init(baseSector, sectorCount); } @@ -260,12 +261,15 @@ static esp_err_t nvs_get_str_or_blob(nvs_handle handle, nvs::ItemType type, cons return err; } - if (length != nullptr && out_value == nullptr) { + if (length == nullptr) { + return ESP_ERR_NVS_INVALID_LENGTH; + } + else if (out_value == nullptr) { *length = dataSize; return ESP_OK; } - - if (length == nullptr || *length < dataSize) { + else if (*length < dataSize) { + *length = dataSize; return ESP_ERR_NVS_INVALID_LENGTH; }