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

Reply via email to