fix(spi_flash): fixed overboundary check skipping of erase and write_encrypted

This commit is contained in:
Xiao Xufeng
2026-04-22 02:31:06 +08:00
parent b4de5a7af2
commit 6affa18a26
+3 -3
View File
@@ -791,7 +791,7 @@ esp_err_t esp_flash_erase_region(esp_flash_t *chip, uint32_t start, uint32_t len
if (len == 0) {
return ESP_OK;
}
if (len > chip->size - start) {
if (start > chip->size || len > chip->size - start) {
return ESP_ERR_INVALID_ARG;
}
return rom_esp_flash_erase_region(chip, start, len);
@@ -804,7 +804,7 @@ esp_err_t IRAM_ATTR esp_flash_erase_region(esp_flash_t *chip, uint32_t start, ui
if (err != ESP_OK) {
return err;
}
if (len > chip->size - start) {
if (start > chip->size || len > chip->size - start) {
return ESP_ERR_INVALID_ARG;
}
return rom_esp_flash_erase_region(chip, start, len);
@@ -1568,7 +1568,7 @@ esp_err_t IRAM_ATTR esp_flash_write_encrypted(esp_flash_t *chip, uint32_t addres
if (err != ESP_OK) {
return err;
}
if (length > chip->size - address) {
if (buffer == NULL || address > chip->size || length > chip->size - address) {
return ESP_ERR_INVALID_ARG;
}
return rom_esp_flash_write_encrypted(chip, address, buffer, length);