Fix eternal readdir when obj header at last block, last entry

Bug in spiffs_obj_lu_find_entry_visitor where it wrapped even
if SPIFFS_VIS_NO_WRAP was set. Special case, if wrap needed at
function entry. This gave eternal readdir loop if there was an
object header at last block, in last entry
This commit is contained in:
Peter Andersson
2015-04-05 20:54:00 +02:00
parent 5f57130f93
commit 5b1480bab2
+7 -3
View File
@@ -142,9 +142,13 @@ s32_t spiffs_obj_lu_find_entry_visitor(
cur_block++;
cur_block_addr = cur_block * SPIFFS_CFG_LOG_BLOCK_SZ(fs);
if (cur_block >= fs->block_count) {
// block wrap
cur_block = 0;
cur_block_addr = 0;
if (flags & SPIFFS_VIS_NO_WRAP) {
return SPIFFS_VIS_END;
} else {
// block wrap
cur_block = 0;
cur_block_addr = 0;
}
}
}