forked from pool/grub2
fce74d3b23
Support for XFS V5 superblock (forwarded request 238591 from jankara) OBS-URL: https://build.opensuse.org/request/show/238594 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/grub2?expand=0&rev=92
33 lines
1.1 KiB
Diff
33 lines
1.1 KiB
Diff
From a7d584c005bde09bb86475a79d714215b3480821 Mon Sep 17 00:00:00 2001
|
|
From: Jan Kara <jack@suse.cz>
|
|
Date: Wed, 11 Jun 2014 18:36:59 +0200
|
|
Subject: [PATCH 2/4] xfs: Fix termination loop for directory iteration
|
|
|
|
Directory iteration used wrong position (sizeof wrong structure) for
|
|
termination of iteration inside a directory block. Luckily the position
|
|
ended up being wrong by just 1 byte and directory entries are larger so
|
|
things worked out fine in practice. But fix the problem anyway.
|
|
|
|
Signed-off-by: Jan Kara <jack@suse.cz>
|
|
---
|
|
grub-core/fs/xfs.c | 3 +--
|
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
|
|
diff --git a/grub-core/fs/xfs.c b/grub-core/fs/xfs.c
|
|
index a2fc942707c1..ef3bc787e968 100644
|
|
--- a/grub-core/fs/xfs.c
|
|
+++ b/grub-core/fs/xfs.c
|
|
@@ -608,8 +608,7 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir,
|
|
- grub_be_to_cpu32 (tail->leaf_stale));
|
|
|
|
/* Iterate over all entries within this block. */
|
|
- while (pos < (dirblk_size
|
|
- - (int) sizeof (struct grub_xfs_dir2_entry)))
|
|
+ while (pos < tail_start)
|
|
{
|
|
struct grub_xfs_dir2_entry *direntry;
|
|
grub_uint8_t *freetag;
|
|
--
|
|
1.8.1.4
|
|
|