[PATCH] cmd: avb: free partition buffer upon verify completion

Gary Bisson gary.bisson at boundarydevices.com
Wed May 6 16:05:57 CEST 2020


Allows to run 'avb verify' multiple times which can be useful after a
failure to be able to re-flash the partition and try again.

Signed-off-by: Gary Bisson <gary.bisson at boundarydevices.com>
---
Hi,

This was added because of the following scenario:
1- fastboot flash boot boot.img
2- avb verify
  -> fails because vbmeta wasn't updated
3- fastboot flash vbmeta vbmeta.img
4- avb verify
  -> fails because it can't allocate memory as previous buffer wasn't
freed

Let me know if you have any questions.

Regards,
Gary
---
 cmd/avb.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/cmd/avb.c b/cmd/avb.c
index a4de5c40a2..67154de4e1 100644
--- a/cmd/avb.c
+++ b/cmd/avb.c
@@ -312,6 +312,14 @@ int do_avb_verify_part(cmd_tbl_t *cmdtp, int flag,
 		printf("Unknown error occurred\n");
 	}
 
+	/* Free image buffers now that verification is complete */
+	if (slot_result != AVB_SLOT_VERIFY_RESULT_ERROR_OOM) {
+		int i;
+		for (i = 0; i < (int)out_data->num_loaded_partitions; i++)
+			if (out_data->loaded_partitions[i].data)
+				free(out_data->loaded_partitions[i].data);
+	}
+
 	return res;
 }
 
-- 
2.26.2



More information about the U-Boot mailing list