From: Ivan Grokhotkov Date: Mon, 22 Aug 2016 03:50:31 +0000 (+0800) Subject: components/nvs: fix infinite loop when loading namespaces X-Git-Tag: v0.9~91^2~6 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=35d50643bc2516e8030f16afc44474594bbcd9fa;p=esp-idf components/nvs: fix infinite loop when loading namespaces --- diff --git a/components/nvs_flash/src/nvs_storage.cpp b/components/nvs_flash/src/nvs_storage.cpp index 32738fa298..5cbc52bee3 100644 --- a/components/nvs_flash/src/nvs_storage.cpp +++ b/components/nvs_flash/src/nvs_storage.cpp @@ -44,6 +44,7 @@ esp_err_t Storage::init(uint32_t baseSector, uint32_t sectorCount) return err; } + // load namespaces list clearNamespaces(); std::fill_n(mNamespaceUsage.data(), mNamespaceUsage.byteSize() / 4, 0); for (auto it = mPageManager.begin(); it != mPageManager.end(); ++it) { @@ -56,6 +57,7 @@ esp_err_t Storage::init(uint32_t baseSector, uint32_t sectorCount) item.getValue(entry->mIndex); mNamespaces.push_back(entry); mNamespaceUsage.set(entry->mIndex, true); + itemIndex += item.span; } } mNamespaceUsage.set(0, true);