When storing entries that aren't multiple of 4 bytes they are padded with random bytes by flash manager.
The problem is that they aren't padded with 1's but rather random data from RAM. This it self isn't a major issue but it's nice to pad with 1 to avoid having random data when looking at flash dumps.
Something along the lines should fix this.
diff --git a/mesh/core/src/flash_manager.c b/mesh/core/src/flash_manager.c
index ea4d2c3..1340f5f 100644
--- a/mesh/core/src/flash_manager.c
+++ b/mesh/core/src/flash_manager.c
@@ -1067,6 +1067,9 @@ fm_entry_t * flash_manager_entry_alloc(flash_manager_t * p_manager,
p_action->params.entry_data.entry.header.len_words = 1 + ALIGN_VAL(data_length, WORD_SIZE) / WORD_SIZE;
p_action->p_manager = p_manager;
+ /* Ensure no garbage is written to flash */
+ p_action->params.entry_data.entry.data[p_action->params.entry_data.entry.header.len_words - 2] = UINT32_MAX;
+
return &p_action->params.entry_data.entry;
}
}
SDK For Mesh v3.2.0.
Thanks