public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/1] fat: FAT sector offsets overflow on large disks and/or FAT partitions
@ 2012-05-03  2:17 Aaron Williams
  2012-05-08  2:10 ` Aaron Williams
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Aaron Williams @ 2012-05-03  2:17 UTC (permalink / raw)
  To: u-boot

This patch fixes several issues where sector offsets can overflow due to
being limited to 16-bits.  There are many cases which can cause an
overflow, including large FAT32 partitions and partitions that start at
a sufficiently large offset on the storage device.

Numerous issues were observed and fixed when a 64GB FAT32 filesystem was
accessed due to truncation.

Signed-off-by: Aaron Williams <aaron.williams@caviumnetworks.com>
---
 include/fat.h |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/include/fat.h b/include/fat.h
index 4c92442..7215628 100644
--- a/include/fat.h
+++ b/include/fat.h
@@ -178,12 +178,12 @@ typedef struct dir_slot {
 typedef struct {
        __u8    *fatbuf;        /* Current FAT buffer */
        int     fatsize;        /* Size of FAT in bits */
-       __u16   fatlength;      /* Length of FAT in sectors */
-       __u16   fat_sect;       /* Starting sector of the FAT */
-       __u16   rootdir_sect;   /* Start sector of root directory */
-       __u16   sect_size;      /* Size of sectors in bytes */
+       __u32   fat_sect;       /* Starting sector of the FAT */
+       __u32   rootdir_sect;   /* Start sector of root directory */
+       __u32   fatlength;      /* Length of FAT in sectors */
        __u16   clust_size;     /* Size of clusters in sectors */
-       short   data_begin;     /* The sector of the first cluster, can be negative */
+       __u16   sect_size;      /* Size of sectors in bytes */
+       int     data_begin;     /* The sector of the first cluster, can be negative */
        int     fatbufnum;      /* Used by get_fatent, init to -1 */
 } fsdata;
 
-- 
1.7.7

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-05-22  8:14 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-03  2:17 [U-Boot] [PATCH 1/1] fat: FAT sector offsets overflow on large disks and/or FAT partitions Aaron Williams
2012-05-08  2:10 ` Aaron Williams
2012-05-12 15:41 ` Anatolij Gustschin
2012-05-14 22:54   ` Aaron Williams
2012-05-19 17:20 ` [U-Boot] [PATCH] fat: fix FAT sector offsets overflow on large " Anatolij Gustschin
2012-05-22  8:14   ` Wolfgang Denk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox