Check src_addr and size first, then allocate new_entry.
{
esp_err_t ret;
bool did_flush, need_flush = false;
- mmap_entry_t* new_entry = (mmap_entry_t*) malloc(sizeof(mmap_entry_t));
- if (new_entry == 0) {
- return ESP_ERR_NO_MEM;
- }
if (src_addr & 0xffff) {
return ESP_ERR_INVALID_ARG;
}
if (src_addr + size > g_rom_flashchip.chip_size) {
return ESP_ERR_INVALID_ARG;
}
+ mmap_entry_t* new_entry = (mmap_entry_t*) malloc(sizeof(mmap_entry_t));
+ if (new_entry == 0) {
+ return ESP_ERR_NO_MEM;
+ }
spi_flash_disable_interrupts_caches_and_other_cpu();