summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2018-12-22 01:55:48 -0800
committerBin Meng <bmeng.cn@gmail.com>2018-12-31 09:42:41 +0800
commit9914c73261b198bf26df70cce8aa098f204cd763 (patch)
treeb6c6bd0da07bfe59d4e474a7d1988c65ceec2af9 /fs
parent2fc7024d7ba370fe1fa416bfd67f1d44afb09aeb (diff)
fs: cbfs: remove wrong header validation
cbfs_fileheader.len indicates the content size of the file in the cbfs, and it has nothing to do with cbfs_fileheader.offset which is the starting address of the file in the cbfs. Remove such check in file_cbfs_next_file(). Before this change 'cbfsinit' failed with 'Bad CBFS file'. After this change all cbfs commands are working as expected. Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com> [bmeng: keep the necessary header sanity check] Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/cbfs/cbfs.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/cbfs/cbfs.c b/fs/cbfs/cbfs.c
index 0dce639b49c..e9433252972 100644
--- a/fs/cbfs/cbfs.c
+++ b/fs/cbfs/cbfs.c
@@ -96,8 +96,7 @@ static int file_cbfs_next_file(u8 *start, u32 size, u32 align,
}
swap_file_header(&header, fileHeader);
- if (header.offset < sizeof(struct cbfs_fileheader) ||
- header.offset > header.len) {
+ if (header.offset < sizeof(struct cbfs_fileheader)) {
file_cbfs_result = CBFS_BAD_FILE;
return -1;
}