From 02bd77379bec15ecbbe4f931d19112d267ef4607 Mon Sep 17 00:00:00 2001 From: Marshall Dawson Date: Wed, 13 Mar 2019 14:43:17 -0600 Subject: [PATCH] util/amdfwtool: Allow 0-length blobs A side effect of the change 8e0dca05 "util/amdfwtool: Add generic image copy function" was to treat a read operation of zero bytes as a failure. Some implementations exist that use zero length files as a means of removing functionality. This causes amdfwtool to exit with an error. Put the zero length capability back in, and generate the requested table entry with a length field of 0x0. TEST=Boot google/grunt, inspect PSP directory table BUG=b:128507639 Change-Id: Ifc9204dbbf6b107f06116362358ab9d22caa71df Signed-off-by: Marshall Dawson Reviewed-on: https://review.coreboot.org/c/coreboot/+/31891 Reviewed-by: Patrick Georgi Reviewed-by: Martin Roth Tested-by: build bot (Jenkins) --- util/amdfwtool/amdfwtool.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/util/amdfwtool/amdfwtool.c b/util/amdfwtool/amdfwtool.c index 376887c2ec..4a13b29c53 100644 --- a/util/amdfwtool/amdfwtool.c +++ b/util/amdfwtool/amdfwtool.c @@ -424,7 +424,7 @@ static void integrate_firmwares(context *ctx, bytes = copy_blob(BUFF_CURRENT(*ctx), fw_table[i].filename, BUFF_ROOM(*ctx)); - if (bytes <= 0) { + if (bytes < 0) { free(ctx->rom); exit(1); } @@ -455,7 +455,7 @@ static void integrate_psp_firmwares(context *ctx, } else if (fw_table[i].filename != NULL) { bytes = copy_blob(BUFF_CURRENT(*ctx), fw_table[i].filename, BUFF_ROOM(*ctx)); - if (bytes <= 0) { + if (bytes < 0) { free(ctx->rom); exit(1); }