瀏覽代碼

espcoredump: fix error reported for blank partition

aleks 5 年之前
父節點
當前提交
59c6afda95
共有 1 個文件被更改,包括 9 次插入1 次删除
  1. 9 1
      components/espcoredump/src/core_dump_common.c

+ 9 - 1
components/espcoredump/src/core_dump_common.c

@@ -191,7 +191,15 @@ esp_err_t esp_core_dump_image_get(size_t* out_addr, size_t *out_size)
     uint32_t *dw = (uint32_t *)core_data;
     *out_size = *dw;
     spi_flash_munmap(core_data_handle);
-
+    
+    if (*out_size == 0xFFFFFFFF) {
+        ESP_LOGD(TAG, "Blank core dump partition!");
+        return ESP_ERR_INVALID_SIZE;
+    } else if ((*out_size < sizeof(uint32_t)) || (*out_size > core_part->size)) {
+        ESP_LOGE(TAG, "Incorrect size of core dump image: %d", *out_size);
+        return ESP_ERR_INVALID_SIZE;
+    }
+    
     // remap full core dump with CRC
     err = esp_partition_mmap(core_part, 0, *out_size,
                              SPI_FLASH_MMAP_DATA, &core_data, &core_data_handle);