util/cbfstool: Fix truncate command error handling and cbfs_image_from_buffer()

Check return value of cbfs_truncate_space() in cbfs_truncate().
Remove return from cbfs_image_from_buffer() to inform about invalid
image region when incorrect offset header was provided.
Also change header offset provided to mentioned function in
cbfs_expand_to_region() and cbfs_truncate_space() from zero
to HEADER_OFFSET_UNKNOWN, as they do not support images with cbfs master
header.

Signed-off-by: Jakub Czapiga <jacz@semihalf.com>
Change-Id: Ib009212692fb3594a826436df765860f54837154
Reviewed-on: https://review.coreboot.org/c/coreboot/+/66334
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
Jakub Czapiga
2022-08-01 16:01:28 +02:00
committed by Julius Werner
parent 77b2d45c9e
commit aa41563483
4 changed files with 10 additions and 7 deletions

View File

@@ -346,9 +346,8 @@ int cbfs_image_from_buffer(struct cbfs_image *out, struct buffer *in,
out->has_header = true;
cbfs_fix_legacy_size(out, header_loc);
return 0;
} else if (offset != ~0u) {
} else if (offset != HEADER_OFFSET_UNKNOWN) {
ERROR("The -H switch is only valid on legacy images having CBFS master headers.\n");
return 1;
}
ERROR("Selected image region is not a valid CBFS.\n");
return 1;
@@ -415,7 +414,7 @@ int cbfs_expand_to_region(struct buffer *region)
struct cbfs_image image;
memset(&image, 0, sizeof(image));
if (cbfs_image_from_buffer(&image, region, 0)) {
if (cbfs_image_from_buffer(&image, region, HEADER_OFFSET_UNKNOWN)) {
ERROR("reading CBFS failed!\n");
return 1;
}
@@ -454,7 +453,7 @@ int cbfs_truncate_space(struct buffer *region, uint32_t *size)
struct cbfs_image image;
memset(&image, 0, sizeof(image));
if (cbfs_image_from_buffer(&image, region, 0)) {
if (cbfs_image_from_buffer(&image, region, HEADER_OFFSET_UNKNOWN)) {
ERROR("reading CBFS failed!\n");
return 1;
}