This makes it unsigned from signed. Did you check that no code relies on signedness in fat.c?
Le mer. 24 août 2016 17:53, Carlo Caione <[email protected]> a écrit : > From: Carlo Caione <[email protected]> > > For exFAT the file size can be > 4GB. The 'grub_fat_data' is still > marking the 'file_size' as grub_ssize_t that is always 32bit when > compiling for i386-pc also when using exFAT. > > This is causing a problem when trying to open in loopback a > 4GB file > from an exFAT partition. > > Fix this modifying the size of the 'file_size' according to the > MODE_EXFAT define. > > Signed-off-by: Carlo Caione <[email protected]> > --- > grub-core/fs/fat.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/grub-core/fs/fat.c b/grub-core/fs/fat.c > index 79fe864..d5212c2 100644 > --- a/grub-core/fs/fat.c > +++ b/grub-core/fs/fat.c > @@ -183,7 +183,11 @@ struct grub_fat_data > grub_uint32_t num_clusters; > > grub_uint8_t attr; > - grub_ssize_t file_size; > +#ifndef MODE_EXFAT > + grub_uint32_t file_size; > +#else > + grub_uint64_t file_size; > +#endif > grub_uint32_t file_cluster; > grub_uint32_t cur_cluster_num; > grub_uint32_t cur_cluster; > -- > 2.7.4 > > > _______________________________________________ > Grub-devel mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/grub-devel >
_______________________________________________ Grub-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/grub-devel
