cbfs: Fix incorrect CBFS file header size being used
authorYaroslav K <yar444@gmail.com>
Tue, 9 Aug 2016 03:32:15 +0000 (20:32 -0700)
committerBin Meng <bmeng.cn@gmail.com>
Tue, 16 Aug 2016 03:44:09 +0000 (11:44 +0800)
This fixes incorrect filenames in cbfsls output.

Signed-off-by: Yaroslav K. <yar444@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
[clean up checkpatch errors and warnings]
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
fs/cbfs/cbfs.c

index 95a48a46f53805c78c63febfad42f7e9755c3087..6e1107d751bc63b7c0603bda218234c41d8cd03d 100644 (file)
@@ -97,8 +97,8 @@ static int file_cbfs_next_file(u8 *start, u32 size, u32 align,
                }
 
                swap_file_header(&header, fileHeader);
-               if (header.offset < sizeof(const struct cbfs_cachenode *) ||
-                               header.offset > header.len) {
+               if (header.offset < sizeof(struct cbfs_fileheader) ||
+                   header.offset > header.len) {
                        file_cbfs_result = CBFS_BAD_FILE;
                        return -1;
                }
@@ -106,9 +106,9 @@ static int file_cbfs_next_file(u8 *start, u32 size, u32 align,
                newNode->type = header.type;
                newNode->data = start + header.offset;
                newNode->data_length = header.len;
-               name_len = header.offset - sizeof(struct cbfs_cachenode *);
+               name_len = header.offset - sizeof(struct cbfs_fileheader);
                newNode->name = (char *)fileHeader +
-                               sizeof(struct cbfs_cachenode *);
+                               sizeof(struct cbfs_fileheader);
                newNode->name_length = name_len;
                newNode->checksum = header.checksum;