cbfstool: Fix architecture check when adding payload
In the process of rewriting cbfstool for ARM and using
a new internal API a regression was introduced that would
silently let you add an ARM payload into an x86 CBFS image
and the other way around. This patch fixes cbfstool to
produce an error in that case again.
BRANCH=none
BUG=none
TEST=emerge-peach_pit with and without my other CL that fixes
the cbfs image type and see it fail without that CL.
Change-Id: I37ee65a467d9658d0846c2cf43b582e285f1a8f8
Signed-off-by: Stefan Reinauer <reinauer@google.com>
Reviewed-on: https://chromium-review.googlesource.com/176711
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Commit-Queue: Stefan Reinauer <reinauer@chromium.org>
Tested-by: Stefan Reinauer <reinauer@chromium.org>
This commit is contained in:
parent
37e1f42d28
commit
8f74f3f522
2 changed files with 11 additions and 8 deletions
|
|
@ -227,6 +227,7 @@ int cbfs_image_from_file(struct cbfs_image *image, const char *filename)
|
|||
cbfs_image_delete(image);
|
||||
return -1;
|
||||
}
|
||||
arch = ntohl(image->header->architecture);
|
||||
cbfs_fix_legacy_size(image);
|
||||
|
||||
return 0;
|
||||
|
|
@ -493,13 +494,14 @@ int cbfs_print_header_info(struct cbfs_image *image)
|
|||
char *name = strdup(image->buffer.name);
|
||||
assert(image && image->header);
|
||||
printf("%s: %zd kB, bootblocksize %d, romsize %d, offset 0x%x\n"
|
||||
"alignment: %d bytes\n\n",
|
||||
"alignment: %d bytes, architecture: %s\n\n",
|
||||
basename(name),
|
||||
image->buffer.size / 1024,
|
||||
ntohl(image->header->bootblocksize),
|
||||
ntohl(image->header->romsize),
|
||||
ntohl(image->header->offset),
|
||||
ntohl(image->header->align));
|
||||
ntohl(image->header->align),
|
||||
arch_to_string(ntohl(image->header->architecture)));
|
||||
free(name);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -88,20 +88,21 @@ static int cbfs_add_component(const char *cbfs_name,
|
|||
return 1;
|
||||
}
|
||||
|
||||
if (cbfs_image_from_file(&image, cbfs_name) != 0) {
|
||||
ERROR("Could not load ROM image '%s'.\n", cbfs_name);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (buffer_from_file(&buffer, filename) != 0) {
|
||||
ERROR("Could not load file '%s'.\n", filename);
|
||||
cbfs_image_delete(&image);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (convert && convert(&buffer, &offset) != 0) {
|
||||
ERROR("Failed to parse file '%s'.\n", filename);
|
||||
buffer_delete(&buffer);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (cbfs_image_from_file(&image, cbfs_name) != 0) {
|
||||
ERROR("Could not load ROM image '%s'.\n", cbfs_name);
|
||||
buffer_delete(&buffer);
|
||||
cbfs_image_delete(&image);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue