Browse Source

example: fix memory leak in pre_encrypted_ota example.

Closes: https://github.com/espressif/esp-idf/issues/9489
Harshit Malpani 3 years ago
parent
commit
048e7f75b9
1 changed files with 5 additions and 1 deletions
  1. 5 1
      examples/system/ota/pre_encrypted_ota/main/pre_encrypted_ota.c

+ 5 - 1
examples/system/ota/pre_encrypted_ota/main/pre_encrypted_ota.c

@@ -84,7 +84,11 @@ static esp_err_t _decrypt_cb(decrypt_cb_arg_t *args, void *user_ctx)
             // It is unlikely to not have App Descriptor available in first iteration of decrypt callback.
             assert(args->data_out_len >= app_desc_offset + sizeof(esp_app_desc_t));
             esp_app_desc_t *app_info = (esp_app_desc_t *) &args->data_out[app_desc_offset];
-            return validate_image_header(app_info);
+            err = validate_image_header(app_info);
+            if (err != ESP_OK) {
+                free(pargs.data_out);
+            }
+            return err;
         }
     } else {
         args->data_out_len = 0;