diff
-   // Hypothetical checksum calculation without bounds checking
-   for (uint32_t i = 0; i < data_len; i++) {
-       *checksum += ((uint8_t *)load_addr)[i];
-   }
+   // Add bounds checking in checksum calculation
+   for (uint32_t i = 0; i < data_len; i++) {
+       if (i >= allocated_size) {
+           return ESP_ERR_INVALID_SIZE;
+       }
+       *checksum += ((uint8_t *)load_addr)[i];
+   }
