On Tue, Aug 11, 2009 at 01:15:54AM +0200, Vladimir 'phcoder' Serbinenko wrote: > Hello I was looking which FS were little and which are big-endian. > This attracted my attention in hfs.c: > /* Adjust len so it we can't read past the end of the file. */ > if (len > grub_le_to_cpu32 (data->size)) > len = grub_le_to_cpu32 (data->size); > Which looks suspicious for big-endian FS. Can anyone check? If note > this mail will be note to self
data->size is initialised using grub_be_to_cpu32 (frec.size) in grub_hfs_open. It looks fairly clearly incorrect for it to be converted again; AFAICS that code will only work properly on little-endian CPUs. This looks as if it ought to be better, although I'm not really in a position to test it: if (len > data->size) len = data->size; -- Colin Watson [cjwat...@ubuntu.com] _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel