Im resubmitting an individual patch by Alain Greppin which was originaly
provided as part of a much larger patch (and declined for that reason).


2008-03-08  Alain Greppin  <[EMAIL PROTECTED]>
 * fs/sfs.c (grub_sfs_read_extent ): Fix the count of nodes in extent-btree
which is written as big endian on disk.


Index: fs/sfs.c
===================================================================
--- fs/sfs.c    (revision 27991)
+++ fs/sfs.c    (working copy)
@@ -172,7 +172,8 @@
          return grub_errno;
        }

-      for (i = 0; i < tree->nodes; i++)
+      grub_uint16_t nodescount = grub_be_to_cpu16(tree->nodes);
+      for (i = 0; i < nodescount; i++)
        {

#define EXTNODE(tree, index)                                           \
@@ -189,7 +190,7 @@

          /* In case the last node is reached just use that one, it is
             the right match.  */
-         if (i + 1 == tree->nodes && !tree->leaf)
+         if (i + 1 == nodescount && !tree->leaf)
            {
              next = grub_be_to_cpu32 (EXTNODE (tree, i)->data);
              break;
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to