Merge branch 'contrib/github_pr_18822_v6.0' into 'release/v6.0'

fix(esp_partition): prevent size_t overflow bypassing bounds checks on linux target (GitHub PR) (v6.0)

See merge request espressif/esp-idf!50908
This commit is contained in:
Jiang Jiang Jian
2026-07-24 15:52:04 +08:00
+4 -4
View File
@@ -444,7 +444,7 @@ esp_err_t esp_partition_write(const esp_partition_t *partition, size_t dst_offse
if (dst_offset > partition->size) {
return ESP_ERR_INVALID_ARG;
}
if (dst_offset + size > partition->size) {
if (size > partition->size - dst_offset) {
return ESP_ERR_INVALID_SIZE;
}
@@ -500,7 +500,7 @@ esp_err_t esp_partition_read(const esp_partition_t *partition, size_t src_offset
if (src_offset > partition->size) {
return ESP_ERR_INVALID_ARG;
}
if (src_offset + size > partition->size) {
if (size > partition->size - src_offset) {
return ESP_ERR_INVALID_SIZE;
}
@@ -545,7 +545,7 @@ esp_err_t esp_partition_erase_range(const esp_partition_t *partition, size_t off
if (offset > partition->size || offset % partition->erase_size != 0) {
return ESP_ERR_INVALID_ARG;
}
if (offset + size > partition->size || size % partition->erase_size != 0) {
if (size > partition->size - offset || size % partition->erase_size != 0) {
return ESP_ERR_INVALID_SIZE;
}
@@ -597,7 +597,7 @@ esp_err_t esp_partition_mmap(const esp_partition_t *partition, size_t offset, si
if (offset > partition->size) {
return ESP_ERR_INVALID_ARG;
}
if (offset + size > partition->size) {
if (size > partition->size - offset) {
return ESP_ERR_INVALID_SIZE;
}
if (partition->flash_chip != NULL) {