diff --git a/drivers/st/io/io_stm32image.c b/drivers/st/io/io_stm32image.c index a50a0df97213dc07a1656154b36af5e9aaf7d731..61c974b60ec94323650c0fb9ed1a4cb86eeb273f 100644 --- a/drivers/st/io/io_stm32image.c +++ b/drivers/st/io/io_stm32image.c @@ -229,6 +229,7 @@ static int stm32image_partition_read(io_entity_t *entity, uintptr_t buffer, uint8_t *local_buffer; boot_api_image_header_t *header = (boot_api_image_header_t *)first_lba_buffer; + size_t hdr_sz = sizeof(boot_api_image_header_t); assert(entity != NULL); assert(buffer != 0U); @@ -242,15 +243,13 @@ static int stm32image_partition_read(io_entity_t *entity, uintptr_t buffer, #endif /* Part of image already loaded with the header */ - memcpy(local_buffer, (uint8_t *)first_lba_buffer + - sizeof(boot_api_image_header_t), - MAX_LBA_SIZE - sizeof(boot_api_image_header_t)); - local_buffer += MAX_LBA_SIZE - sizeof(boot_api_image_header_t); + memcpy(local_buffer, (uint8_t *)first_lba_buffer + hdr_sz, + MAX_LBA_SIZE - hdr_sz); + local_buffer += MAX_LBA_SIZE - hdr_sz; offset = MAX_LBA_SIZE; /* New image length to be read */ - local_length = round_up(length - ((MAX_LBA_SIZE) - - sizeof(boot_api_image_header_t)), + local_length = round_up(length - ((MAX_LBA_SIZE) - hdr_sz), stm32image_dev.lba_size); if ((header->load_address != 0U) && (header->load_address != buffer)) { @@ -279,7 +278,7 @@ static int stm32image_partition_read(io_entity_t *entity, uintptr_t buffer, } /* Adding part of size already read from header */ - *length_read += MAX_LBA_SIZE - sizeof(boot_api_image_header_t); + *length_read += MAX_LBA_SIZE - hdr_sz; out: io_close(backend_handle);