summaryrefslogtreecommitdiff
path: root/boot/android_ab.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2024-01-12 08:34:50 -0500
committerTom Rini <trini@konsulko.com>2024-01-12 08:34:50 -0500
commit547d3dd28a46a18d59e00a153c8becca8d4e8cf9 (patch)
tree79a09ba118b2b4d3001bfd478206734d2727f4f7 /boot/android_ab.c
parent2ee7a8ec6f1711abe9619fd8765edc16742be9de (diff)
parent2027e99e61aab6fd8b06e2d752e0e538cff26eb6 (diff)
Merge branch '2024-01-12-assorted-fixes'
- Allow defconfigs to #include files (so we can construct a defconfig from fragments), update phy-mtk-tphy binding, assorted test fixes, allow building host tools without cryptographic libraries again, android_ab bugfix, and make some SPL debugging cases easier.
Diffstat (limited to 'boot/android_ab.c')
-rw-r--r--boot/android_ab.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/boot/android_ab.c b/boot/android_ab.c
index 0f20a34e511..c9df6d2b4b1 100644
--- a/boot/android_ab.c
+++ b/boot/android_ab.c
@@ -336,7 +336,14 @@ int ab_select_slot(struct blk_desc *dev_desc, struct disk_partition *part_info,
if (store_needed) {
abc->crc32_le = ab_control_compute_crc(abc);
- ab_control_store(dev_desc, part_info, abc, 0);
+ ret = ab_control_store(dev_desc, part_info, abc, 0);
+ if (ret < 0) {
+#if ANDROID_AB_BACKUP_OFFSET
+ free(backup_abc);
+#endif
+ free(abc);
+ return ret;
+ }
}
#if ANDROID_AB_BACKUP_OFFSET
@@ -345,8 +352,13 @@ int ab_select_slot(struct blk_desc *dev_desc, struct disk_partition *part_info,
* to the backup offset
*/
if (memcmp(backup_abc, abc, sizeof(*abc)) != 0) {
- ab_control_store(dev_desc, part_info, abc,
- ANDROID_AB_BACKUP_OFFSET);
+ ret = ab_control_store(dev_desc, part_info, abc,
+ ANDROID_AB_BACKUP_OFFSET);
+ if (ret < 0) {
+ free(backup_abc);
+ free(abc);
+ return ret;
+ }
}
free(backup_abc);
#endif