]> git.proxmox.com Git - grub2.git/commitdiff
2009-05-13 Pavel Roskin <proski@gnu.org>
authorproski <proski@localhost>
Wed, 13 May 2009 20:09:09 +0000 (20:09 +0000)
committerproski <proski@localhost>
Wed, 13 May 2009 20:09:09 +0000 (20:09 +0000)
* 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.

ChangeLog
fs/iso9660.c

index 4aea4cddb3681321fc5b7fd97157b69f84e3493b..65387ecf5692bf0b864a84281ce0ba54dc5a3ffe 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2009-05-13  Pavel Roskin  <proski@gnu.org>
 
+       * 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
index 140d8c2135aa38f312654c0478df7f868c170b78..32dfddbb33db9031a63cc2f7d9ce08d8ff0bcb95 100644 (file)
@@ -521,8 +521,8 @@ grub_iso9660_iterate_dir (grub_fshelp_node_t dir,
       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)