* grub-core/fs/xfs.c (grub_xfs_iterate_dir): Use grub_get_unaligned16

to get freetag and skip.
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2011-12-13 02:02:38 +01:00
parent eb561f3123
commit 728cba91d2
2 changed files with 10 additions and 5 deletions

View file

@ -1,3 +1,8 @@
2011-12-13 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/fs/xfs.c (grub_xfs_iterate_dir): Use grub_get_unaligned16
to get freetag and skip.
2011-12-13 Vladimir Serbinenko <phcoder@gmail.com> 2011-12-13 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/fs/nilfs2.c (grub_nilfs2_btree_node): Add zero-size keys * grub-core/fs/nilfs2.c (grub_nilfs2_btree_node): Add zero-size keys

View file

@ -589,18 +589,18 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir,
- (int) sizeof (struct grub_xfs_dir2_entry))) - (int) sizeof (struct grub_xfs_dir2_entry)))
{ {
struct grub_xfs_dir2_entry *direntry; struct grub_xfs_dir2_entry *direntry;
grub_uint16_t *freetag; grub_uint8_t *freetag;
char *filename; char *filename;
direntry = (struct grub_xfs_dir2_entry *) &dirblock[pos]; direntry = (struct grub_xfs_dir2_entry *) &dirblock[pos];
freetag = (grub_uint16_t *) direntry; freetag = (grub_uint8_t *) direntry;
if (*freetag == 0XFFFF) if (grub_get_unaligned16 (freetag) == 0XFFFF)
{ {
grub_uint16_t *skip = (grub_uint16_t *) (freetag + 1); grub_uint8_t *skip = (freetag + sizeof (grub_uint16_t));
/* This entry is not used, go to the next one. */ /* This entry is not used, go to the next one. */
pos += grub_be_to_cpu16 (*skip); pos += grub_be_to_cpu16 (grub_get_unaligned16 (skip));
continue; continue;
} }