Skip to content

Commit a31f6a4

Browse files
committed
Avoid to write uninitialized data at the end of the binary when loading an MCUBoot update file
1 parent bb26d85 commit a31f6a4

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

envie_dfu/usbd_dfu_flash.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,10 @@ uint16_t Flash_If_Write(uint8_t * src, uint8_t * dest, uint32_t Len)
163163
if (isFileBlockFlash((uint32_t)dest)) {
164164
dest -= FILEBLOCK_BASE_ADDRESS;
165165
if (Len < dfu_secondary_bd->get_erase_size(0)) {
166-
Len = dfu_secondary_bd->get_erase_size(0);
166+
uint8_t* srcCopy = (uint8_t*)malloc(dfu_secondary_bd->get_erase_size(0));
167+
memcpy(srcCopy, src, Len);
168+
memset(&srcCopy[Len], dfu_secondary_bd->get_erase_value(), dfu_secondary_bd->get_erase_size(0) - Len);
169+
return dfu_secondary_bd->program(&srcCopy[0],(uint32_t)dest, dfu_secondary_bd->get_erase_size(0));
167170
}
168171
return dfu_secondary_bd->program(src, (uint32_t)dest, Len);
169172
} else if (isExternalFlash((uint32_t)dest)) {

0 commit comments

Comments
 (0)