tags 634799 + upstream patch
thanks

Hello,

Digging a bit with the issue, it seems grub2 does not ignore entries
with inode == 0 while it should. See linux' ext2_readdir() in
fs/ext2/dir.c doing it:

                for ( ;(char*)de <= limit; de = ext2_next_entry(de)) {
                        if (de->inode) {
                          ...
                        }
                }

The attached patch fixes it. Shall I commit it to upstream grub2?

Samuel
=== modified file 'grub-core/fs/ext2.c'
--- grub-core/fs/ext2.c 2011-04-11 21:01:51 +0000
+++ grub-core/fs/ext2.c 2011-07-20 22:20:43 +0000
@@ -689,7 +689,7 @@ grub_ext2_iterate_dir (grub_fshelp_node_
       if (dirent.direntlen == 0)
         return 0;
 
-      if (dirent.namelen != 0)
+      if (dirent.inode != 0 && dirent.namelen != 0)
        {
          char filename[dirent.namelen + 1];
          struct grub_fshelp_node *fdiro;

Reply via email to