]> granicus.if.org Git - esp-idf/commitdiff
components/nvs: fix infinite loop when loading namespaces
authorIvan Grokhotkov <ivan@espressif.com>
Mon, 22 Aug 2016 03:50:31 +0000 (11:50 +0800)
committerIvan Grokhotkov <ivan@espressif.com>
Tue, 23 Aug 2016 04:08:00 +0000 (12:08 +0800)
components/nvs_flash/src/nvs_storage.cpp

index 32738fa298d45be6f800c0f610acf77aeb2d6a76..5cbc52bee3aa06d17d229a5a95be2b5528cae1b7 100644 (file)
@@ -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);