Commit 48281627 authored by Dominik Ermel's avatar Dominik Ermel Committed by Andrzej Puzdrowski
Browse files

bootutil: Fix boot_write_trailer write alignment



The commit fixes alignment issue in boot_write_trailer, that would
occur in case when input buffer length would be greater than
alignment parameter of flash.

Signed-off-by: default avatarDominik Ermel <dominik.ermel@nordicsemi.no>
parent a7f9e9f5
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -344,13 +344,12 @@ boot_write_trailer(const struct flash_area *fap, uint32_t off,
    int rc;

    align = flash_area_align(fap);
    if (inlen > BOOT_MAX_ALIGN || align > BOOT_MAX_ALIGN) {
    align = (inlen + align - 1) & ~(align - 1);
    if (align > BOOT_MAX_ALIGN) {
        return -1;
    }
    erased_val = flash_area_erased_val(fap);
    if (align < inlen) {
        align = inlen;
    }

    memcpy(buf, inbuf, inlen);
    memset(&buf[inlen], erased_val, align - inlen);