diff --git a/ChangeLog b/ChangeLog index 4aa111936..64b77d04d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2009-09-11 Colin Watson + + * include/grub/ntfs.h (struct grub_fshelp_node): Change `size' + to grub_uint64_t. + * fs/ntfs.c (init_file): Understand 64-bit sizes for + non-resident files. + 2009-09-11 Colin Watson * configure.ac: Don't look for help2man when cross-compiling. Fixes diff --git a/fs/ntfs.c b/fs/ntfs.c index 3ff487c6e..f1d0a374e 100644 --- a/fs/ntfs.c +++ b/fs/ntfs.c @@ -543,7 +543,7 @@ init_file (struct grub_ntfs_file *mft, grub_uint32_t mftno) if (!pa[8]) mft->size = u32at (pa, 0x10); else - mft->size = u32at (pa, 0x30); + mft->size = u64at (pa, 0x30); if ((mft->attr.flags & AF_ALST) == 0) mft->attr.attr_end = 0; /* Don't jump to attribute list */ diff --git a/include/grub/ntfs.h b/include/grub/ntfs.h index 9b2ae0a0c..6482e964b 100644 --- a/include/grub/ntfs.h +++ b/include/grub/ntfs.h @@ -133,7 +133,7 @@ struct grub_fshelp_node { struct grub_ntfs_data *data; char *buf; - grub_uint32_t size; + grub_uint64_t size; grub_uint32_t ino; int inode_read; struct grub_ntfs_attr attr;