Check that the code to be loaded actually fits in the flash.
Signed-off-by: Sami Liedes <sliedes@cc.hut.fi>
void avr_loadcode(avr_t * avr, uint8_t * code, uint32_t size, uint32_t address)
{
void avr_loadcode(avr_t * avr, uint8_t * code, uint32_t size, uint32_t address)
{
+ if (size > avr->flashend+1) {
+ fprintf(stderr, "avr_loadcode(): Attempted to load code of size %d but flash size is only %d.\n",
+ size, avr->flashend+1);
+ abort();
+ }
memcpy(avr->flash + address, code, size);
}
memcpy(avr->flash + address, code, size);
}