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>
This commit is contained in:
Patrick Georgi 2015-08-12 12:01:01 +02:00
parent 57edf16be5
commit db01ddfd49

View File

@ -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 // We need to put content here, and the case is really
// complicated... // complicated...
assert(content_offset); assert(content_offset);
if (addr_next < content_offset) { if (content_offset > 0) {
DEBUG("Not for specified offset yet"); if (addr_next < content_offset) {
continue; DEBUG("Not for specified offset yet");
} else if (addr > content_offset) { continue;
DEBUG("Exceed specified content_offset."); } else if (addr > content_offset) {
break; DEBUG("Exceed specified content_offset.");
} else if (addr + header_size > content_offset) { break;
ERROR("Not enough space for header.\n"); } else if (addr + header_size > content_offset) {
break; ERROR("Not enough space for header.\n");
} else if (content_offset + buffer->size > addr_next) { break;
ERROR("Not enough space for content.\n"); } else if (content_offset + buffer->size > addr_next) {
break; ERROR("Not enough space for content.\n");
break;
}
} }
// TODO there are more few tricky cases that we may // TODO there are more few tricky cases that we may