summaryrefslogtreecommitdiff
path: root/boot/android_ab.c
diff options
context:
space:
mode:
Diffstat (limited to 'boot/android_ab.c')
-rw-r--r--boot/android_ab.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/boot/android_ab.c b/boot/android_ab.c
index 143f373aae9..1196a189ed5 100644
--- a/boot/android_ab.c
+++ b/boot/android_ab.c
@@ -139,8 +139,13 @@ static int ab_control_store(struct blk_desc *dev_desc,
{
ulong abc_offset, abc_blocks, ret;
- abc_offset = offset +
- offsetof(struct bootloader_message_ab, slot_suffix) /
+ if (offset % part_info->blksz) {
+ log_err("ANDROID: offset not block aligned\n");
+ return -EINVAL;
+ }
+
+ abc_offset = (offset +
+ offsetof(struct bootloader_message_ab, slot_suffix)) /
part_info->blksz;
abc_blocks = DIV_ROUND_UP(sizeof(struct bootloader_control),
part_info->blksz);