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 [[email protected]]
_______________________________________________
Grub-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/grub-devel