Revision: 2205
http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=2205
Author: proski
Date: 2009-05-13 20:09:09 +0000 (Wed, 13 May 2009)
Log Message:
-----------
2009-05-13 Pavel Roskin <[email protected]>
* fs/iso9660.c (grub_iso9660_iterate_dir): The file mode in the
PX record is always little-endian. We only need the lower 2
bytes of the mode.
Modified Paths:
--------------
trunk/grub2/ChangeLog
trunk/grub2/fs/iso9660.c
Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog 2009-05-13 19:16:55 UTC (rev 2204)
+++ trunk/grub2/ChangeLog 2009-05-13 20:09:09 UTC (rev 2205)
@@ -1,5 +1,9 @@
2009-05-13 Pavel Roskin <[email protected]>
+ * fs/iso9660.c (grub_iso9660_iterate_dir): The file mode in the
+ PX record is always little-endian. We only need the lower 2
+ bytes of the mode.
+
* fs/cpio.c: Use the same name "struct head" for tar and cpio to
facilitate code reuse.
(grub_cpio_mount): Use "struct head", not a char buffer. This
Modified: trunk/grub2/fs/iso9660.c
===================================================================
--- trunk/grub2/fs/iso9660.c 2009-05-13 19:16:55 UTC (rev 2204)
+++ trunk/grub2/fs/iso9660.c 2009-05-13 20:09:09 UTC (rev 2205)
@@ -521,8 +521,8 @@
else if (grub_strncmp ((char *) entry->sig, "PX", 2) == 0)
{
/* At position 0 of the PX record the st_mode information is
- stored. */
- grub_uint32_t mode = ((*(grub_uint32_t *) &entry->data[0])
+ stored (little-endian). */
+ grub_uint32_t mode = ((entry->data[0] + (entry->data[1] << 8))
& GRUB_ISO9660_FSTYPE_MASK);
switch (mode)