Skip to content
Snippets Groups Projects
Commit 76b391cd authored by Reinhard Pfau's avatar Reinhard Pfau Committed by Luka Perkov
Browse files

tools/kwbimage: fix size computations for v1 images


Fix computation of haeder size and binary header size.
Size of opt header and some 32bit values were not taken into account. This could
result in invalid boot images (due to the wrong binary header size, the image could
claim to have another extension header after the binary extension although there
is none).

Use "uint32_t" instead of "unsigned int" for header size computation.

Signed-off-by: default avatarReinhard Pfau <reinhard.pfau@gdsys.cc>
Reviewed-by: default avatarStefan Roese <sr@denx.de>
Cc: Luka Perkov <luka.perkov@sartura.hr>
parent a8840dce
Branches
Tags
No related merge requests found
......@@ -324,8 +324,9 @@ static size_t image_headersz_v1(struct image_tool_params *params,
return 0;
}
headersz += s.st_size +
binarye->binary.nargs * sizeof(unsigned int);
headersz += sizeof(struct opt_hdr_v1) +
s.st_size +
(binarye->binary.nargs + 2) * sizeof(uint32_t);
if (hasext)
*hasext = 1;
}
......@@ -419,7 +420,7 @@ static void *image_create_v1(size_t *imagesz, struct image_tool_params *params,
fstat(fileno(bin), &s);
binhdrsz = sizeof(struct opt_hdr_v1) +
(binarye->binary.nargs + 1) * sizeof(unsigned int) +
(binarye->binary.nargs + 2) * sizeof(uint32_t) +
s.st_size;
/*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment