acpi: make bios_linker_loader_add_checksum() API offset based

It should help to make clear that bios_linker works in terms
of offsets within a file. Also it should prevent mistakes
where user passes as arguments pointers to unrelated to file blobs.

While at it, considering that it's a ACPI checksum and
it's initial value must be 0, move checksum field zeroing
into bios_linker_loader_add_checksum() instead of doing it
at every call site manually before bios_linker_loader_add_checksum()
is called.

In addition add extra boundary checks.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Igor Mammedov 2016-05-19 15:19:30 +02:00 committed by Michael S. Tsirkin
parent 4678124bb9
commit 28213cb6a6
5 changed files with 22 additions and 33 deletions

View file

@ -17,8 +17,8 @@ void bios_linker_loader_alloc(BIOSLinker *linker,
bool alloc_fseg);
void bios_linker_loader_add_checksum(BIOSLinker *linker, const char *file,
void *start, unsigned size,
uint8_t *checksum);
unsigned start_offset, unsigned size,
unsigned checksum_offset);
void bios_linker_loader_add_pointer(BIOSLinker *linker,
const char *dest_file,