diff mbox series

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

Message ID 20200511101153.20396-1-gary.bisson@boundarydevices.com
State Accepted
Commit b09e1b614949ea9cb426e2e7cf0d2bd65ed7d02d
Delegated to: Tom Rini
Headers show
Series [v2] cmd: avb: free partition buffer upon verify completion | expand

Commit Message

Gary Bisson May 11, 2020, 10:11 a.m. UTC
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.0.0_r37/test/avb_slot_verify_unittest.cc#156

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(+)

Comments

Igor Opaniuk May 12, 2020, 1:12 p.m. UTC | #1
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.0.0_r37/test/avb_slot_verify_unittest.cc#156
>
> 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
Tom Rini May 20, 2020, 12:23 p.m. UTC | #2
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.0.0_r37/test/avb_slot_verify_unittest.cc#156
> 
> Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
> Reviewed-by: Igor Opaniuk <igor.opaniuk@gmail.com>

Applied to u-boot/master, thanks!
diff mbox series

Patch

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;
 }