]> granicus.if.org Git - esp-idf/commitdiff
Merge branch 'bugfix/nvs_failed_crc_assert' into 'master'
authorIvan Grokhotkov <ivan@espressif.com>
Wed, 18 Apr 2018 03:01:21 +0000 (11:01 +0800)
committerIvan Grokhotkov <ivan@espressif.com>
Wed, 18 Apr 2018 03:01:21 +0000 (11:01 +0800)
nvs: don’t expect items with bad CRC to be in cache

See merge request idf/esp-idf!2239

1  2 
components/nvs_flash/src/nvs_page.cpp
components/nvs_flash/test_nvs_host/test_nvs.cpp

index cd0141f684d4d3d13c324105efb6c1457dee4e39,d05f97edc2b612e963f460d82893f5fb5c2d67c5..54d6db7bd3a575a6fa17f07cc885ea0c149c3c25
@@@ -586,20 -584,12 +584,22 @@@ esp_err_t Page::mLoadEntryTable(
                  }
                  continue;
              }
-             
              assert(item.span > 0);
  
+             mHashList.insert(item, i);
              size_t span = item.span;
 +
 +            if (item.datatype == ItemType::BLOB || item.datatype == ItemType::SZ) {
 +                for (size_t j = i + 1; j < i + span; ++j) {
 +                    if (mEntryTable.get(j) != EntryState::WRITTEN) {
 +                        eraseEntryAndSpan(i);
 +                        break;
 +                    }
 +                }
 +            }
 +
              i += span - 1;
          }