diff --git a/src/fdb_kvdb.c b/src/fdb_kvdb.c index f0194f6cca39770b062b1bb35f86b614294e74cd..850a1adf09febffc5f71713f9baa9b090343ed73 100644 --- a/src/fdb_kvdb.c +++ b/src/fdb_kvdb.c @@ -252,7 +252,7 @@ static uint32_t find_next_kv_addr(fdb_kvdb_t db, uint32_t start, uint32_t end) } #endif /* FDB_KV_USING_CACHE */ - for (; start < end; start += (sizeof(buf) - sizeof(uint32_t))) { + for (; start < end && start + sizeof(buf) < end; start += (sizeof(buf) - sizeof(uint32_t))) { _fdb_flash_read((fdb_db_t)db, start, (uint32_t *) buf, sizeof(buf)); for (i = 0; i < sizeof(buf) - sizeof(uint32_t) && start + i < end; i++) { #ifndef FDB_BIG_ENDIAN /* Little Endian Order */ @@ -293,7 +293,7 @@ static uint32_t get_next_kv_addr(fdb_kvdb_t db, kv_sec_info_t sector, fdb_kv_t p addr = find_next_kv_addr(db, addr, sector->addr + db_sec_size(db) - SECTOR_HDR_DATA_SIZE); if (addr > sector->addr + db_sec_size(db) || pre_kv->len == 0) { - //TODO 扇区连续模式 + //TODO 鎵囧尯杩炵画妯″紡 return FAILED_ADDR; } } else { @@ -328,7 +328,7 @@ static fdb_err_t read_kv(fdb_kvdb_t db, fdb_kv_t kv) kv->crc_is_ok = false; return FDB_READ_ERR; } else if (kv->len > db_sec_size(db) - SECTOR_HDR_DATA_SIZE && kv->len < db_part_size(db)) { - //TODO 扇区连续模式,或者写入长度没有写入完整 + //TODO 鎵囧尯杩炵画妯″紡锛屾垨鑰呭啓鍏ラ暱搴︽病鏈夊啓鍏ュ畬鏁 FDB_ASSERT(0); } @@ -1468,7 +1468,7 @@ static bool check_and_recovery_kv_cb(fdb_kv_t kv, void *arg1, void *arg2) } else if (kv->status == FDB_KV_PRE_WRITE) { uint8_t status_table[KV_STATUS_TABLE_SIZE]; /* the KV has not write finish, change the status to error */ - //TODO 绘制异常处理的状态装换图 + //TODO 缁樺埗寮傚父澶勭悊鐨勭姸鎬佽鎹㈠浘 _fdb_write_status((fdb_db_t)db, kv->addr.start, status_table, FDB_KV_STATUS_NUM, FDB_KV_ERR_HDR); return true; }