summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Georgi <pgeorgi@google.com>2015-08-12 12:01:01 +0200
committerPatrick Georgi <pgeorgi@google.com>2015-08-13 16:10:06 +0200
commitdb01ddfd49ee6177c738f410496574105e7e5e44 (patch)
tree1d1bbd60e3c2809bf327315f919c69d51d6c2503
parent57edf16be5ddef5da272ff8e1a9f1d78091377d9 (diff)
cbfstool: prepare moving tests earlier
The assert() makes sure the if() holds true. But that assert won't survive for long. Change-Id: Iab7d2bc7bfebb3f3b3ce70dc5bd041902e14bd7a Signed-off-by: Patrick Georgi <pgeorgi@google.com> Reviewed-on: http://review.coreboot.org/11220 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r--util/cbfstool/cbfs_image.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/util/cbfstool/cbfs_image.c b/util/cbfstool/cbfs_image.c
index ddc9cf5366..1a20fbae80 100644
--- a/util/cbfstool/cbfs_image.c
+++ b/util/cbfstool/cbfs_image.c
@@ -616,18 +616,20 @@ int cbfs_add_entry(struct cbfs_image *image, struct buffer *buffer,
// We need to put content here, and the case is really
// complicated...
assert(content_offset);
- if (addr_next < content_offset) {
- DEBUG("Not for specified offset yet");
- continue;
- } else if (addr > content_offset) {
- DEBUG("Exceed specified content_offset.");
- break;
- } else if (addr + header_size > content_offset) {
- ERROR("Not enough space for header.\n");
- break;
- } else if (content_offset + buffer->size > addr_next) {
- ERROR("Not enough space for content.\n");
- break;
+ if (content_offset > 0) {
+ if (addr_next < content_offset) {
+ DEBUG("Not for specified offset yet");
+ continue;
+ } else if (addr > content_offset) {
+ DEBUG("Exceed specified content_offset.");
+ break;
+ } else if (addr + header_size > content_offset) {
+ ERROR("Not enough space for header.\n");
+ break;
+ } else if (content_offset + buffer->size > addr_next) {
+ ERROR("Not enough space for content.\n");
+ break;
+ }
}
// TODO there are more few tricky cases that we may