]> granicus.if.org Git - esp-idf/commitdiff
bugfix/ota_magic_byte_issue: Fixes OTA magic byte error
authorSupreet Deshpande <supreet.deshpande@espressif.com>
Mon, 10 Dec 2018 11:46:38 +0000 (17:16 +0530)
committerSupreet Deshpande <supreet.deshpande@espressif.com>
Mon, 10 Dec 2018 11:46:38 +0000 (17:16 +0530)
On enabling flash encryption, OTA fails with magic byte error in the second chunk
if the http data is split into two or more chunks and first chunk is less than 16.

components/app_update/esp_ota_ops.c

index 5d415ffecae82dc732e058ec40a1f25520dd542e..40cd89d49c386279d9957bb724e28a5b2f050b21 100644 (file)
@@ -183,8 +183,7 @@ esp_err_t esp_ota_write(esp_ota_handle_t handle, const void *data, size_t size)
         if (it->handle == handle) {
             // must erase the partition before writing to it
             assert(it->erased_size > 0 && "must erase the partition before writing to it");
-
-            if(it->wrote_size == 0 && size > 0 && data_bytes[0] != 0xE9) {
+            if(it->wrote_size == 0 && it->partial_bytes == 0 && size > 0 && data_bytes[0] != 0xE9) {
                 ESP_LOGE(TAG, "OTA image has invalid magic byte (expected 0xE9, saw 0x%02x", data_bytes[0]);
                 return ESP_ERR_OTA_VALIDATE_FAILED;
             }