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

Doing the same as the unittests for libavb [1].
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.
[1] https://android.googlesource.com/platform/external/avb/+/refs/tags/android-9...
Signed-off-by: Gary Bisson gary.bisson@boundarydevices.com --- Hi,
Changelog v2: - use avb_slot_verity_data_free as suggested by Igor
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 | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/cmd/avb.c b/cmd/avb.c index a4de5c40a2..93d1a31819 100644 --- a/cmd/avb.c +++ b/cmd/avb.c @@ -312,6 +312,9 @@ int do_avb_verify_part(cmd_tbl_t *cmdtp, int flag, printf("Unknown error occurred\n"); }
+ if (out_data) + avb_slot_verify_data_free(out_data); + return res; }

Hi Gary,
On Mon, May 11, 2020 at 1:11 PM Gary Bisson gary.bisson@boundarydevices.com wrote:
Doing the same as the unittests for libavb [1].
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.
[1] https://android.googlesource.com/platform/external/avb/+/refs/tags/android-9...
Signed-off-by: Gary Bisson gary.bisson@boundarydevices.com
Hi,
Changelog v2:
- use avb_slot_verity_data_free as suggested by Igor
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 | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/cmd/avb.c b/cmd/avb.c index a4de5c40a2..93d1a31819 100644 --- a/cmd/avb.c +++ b/cmd/avb.c @@ -312,6 +312,9 @@ int do_avb_verify_part(cmd_tbl_t *cmdtp, int flag, printf("Unknown error occurred\n"); }
if (out_data)
avb_slot_verify_data_free(out_data);
return res;
}
-- 2.26.2
Reviewed-by: Igor Opaniuk igor.opaniuk@gmail.com
Thanks

On Mon, May 11, 2020 at 12:11:53PM +0200, Gary Bisson wrote:
Doing the same as the unittests for libavb [1].
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.
[1] https://android.googlesource.com/platform/external/avb/+/refs/tags/android-9...
Signed-off-by: Gary Bisson gary.bisson@boundarydevices.com Reviewed-by: Igor Opaniuk igor.opaniuk@gmail.com
Applied to u-boot/master, thanks!
participants (3)
-
Gary Bisson
-
Igor Opaniuk
-
Tom Rini