mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-01 03:34:32 +02:00
fix(spi_flash): check for safe write address in encrypted flash API
This commit is contained in:
@@ -946,11 +946,13 @@ esp_err_t IRAM_ATTR esp_flash_write(esp_flash_t *chip, const void *buffer, uint3
|
|||||||
esp_err_t IRAM_ATTR esp_flash_write_encrypted(esp_flash_t *chip, uint32_t address, const void *buffer, uint32_t length)
|
esp_err_t IRAM_ATTR esp_flash_write_encrypted(esp_flash_t *chip, uint32_t address, const void *buffer, uint32_t length)
|
||||||
{
|
{
|
||||||
esp_err_t err = rom_spiflash_api_funcs->chip_check(&chip);
|
esp_err_t err = rom_spiflash_api_funcs->chip_check(&chip);
|
||||||
|
VERIFY_CHIP_OP(write);
|
||||||
// Flash encryption only support on main flash.
|
// Flash encryption only support on main flash.
|
||||||
if (chip != esp_flash_default_chip) {
|
if (chip != esp_flash_default_chip) {
|
||||||
return ESP_ERR_NOT_SUPPORTED;
|
return ESP_ERR_NOT_SUPPORTED;
|
||||||
}
|
}
|
||||||
if (err != ESP_OK) return err;
|
CHECK_WRITE_ADDRESS(chip, address, length);
|
||||||
|
|
||||||
if (buffer == NULL || address + length > chip->size) {
|
if (buffer == NULL || address + length > chip->size) {
|
||||||
return ESP_ERR_INVALID_ARG;
|
return ESP_ERR_INVALID_ARG;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user