diff --git a/ChangeLog b/ChangeLog index 108379321..714aa308f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2010-07-06 Colin Watson + + * fs/reiserfs.c (grub_reiserfs_iterate_dir): Zero out first byte of + entry_name also for entries without stat blocks (e.g. ".."); fixes + corruption of the first entry in a directory. + 2010-07-06 Colin Watson * util/grub.d/00_header.in: Process GRUB_THEME and GRUB_BACKGROUND diff --git a/fs/reiserfs.c b/fs/reiserfs.c index 5acd339c5..e92279554 100644 --- a/fs/reiserfs.c +++ b/fs/reiserfs.c @@ -929,7 +929,7 @@ grub_reiserfs_iterate_dir (grub_fshelp_node_t item, "Warning : %s has no stat block !\n", entry_name); grub_free (entry_item); - continue; + goto next; } } if (hook (entry_name, entry_type, entry_item)) @@ -940,6 +940,7 @@ grub_reiserfs_iterate_dir (grub_fshelp_node_t item, goto found; } +next: *entry_name = 0; /* Make sure next entry name (which is just before this one in disk order) stops before the current one. */