2008-06-15 Robert Millan <rmh@aybabtu.com>
* fs/sfs.c (grub_sfs_read_extent): Fix the count of nodes in extent-btree which is written as big endian on disk. Reported by Alain Greppin <al@chilibi.org>.
This commit is contained in:
parent
23a64d8eaf
commit
21cf716ad4
2 changed files with 9 additions and 3 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2008-06-15 Robert Millan <rmh@aybabtu.com>
|
||||||
|
|
||||||
|
* fs/sfs.c (grub_sfs_read_extent): Fix the count of nodes in
|
||||||
|
extent-btree which is written as big endian on disk.
|
||||||
|
Reported by Alain Greppin <al@chilibi.org>.
|
||||||
|
|
||||||
2008-06-14 Robert Millan <rmh@aybabtu.com>
|
2008-06-14 Robert Millan <rmh@aybabtu.com>
|
||||||
|
|
||||||
* util/i386/efi/grub-install.in (modules): Remove `_chain'.
|
* util/i386/efi/grub-install.in (modules): Remove `_chain'.
|
||||||
|
|
6
fs/sfs.c
6
fs/sfs.c
|
@ -1,7 +1,7 @@
|
||||||
/* sfs.c - Amiga Smart FileSystem. */
|
/* sfs.c - Amiga Smart FileSystem. */
|
||||||
/*
|
/*
|
||||||
* GRUB -- GRand Unified Bootloader
|
* GRUB -- GRand Unified Bootloader
|
||||||
* Copyright (C) 2005,2006,2007 Free Software Foundation, Inc.
|
* Copyright (C) 2005,2006,2007,2008 Free Software Foundation, Inc.
|
||||||
*
|
*
|
||||||
* GRUB is free software: you can redistribute it and/or modify
|
* GRUB is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -172,7 +172,7 @@ grub_sfs_read_extent (struct grub_sfs_data *data, unsigned int block,
|
||||||
return grub_errno;
|
return grub_errno;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < tree->nodes; i++)
|
for (i = 0; i < grub_be_to_cpu16 (tree->nodes); i++)
|
||||||
{
|
{
|
||||||
|
|
||||||
#define EXTNODE(tree, index) \
|
#define EXTNODE(tree, index) \
|
||||||
|
@ -189,7 +189,7 @@ grub_sfs_read_extent (struct grub_sfs_data *data, unsigned int block,
|
||||||
|
|
||||||
/* In case the last node is reached just use that one, it is
|
/* In case the last node is reached just use that one, it is
|
||||||
the right match. */
|
the right match. */
|
||||||
if (i + 1 == tree->nodes && !tree->leaf)
|
if (i + 1 == grub_be_to_cpu16 (tree->nodes) && !tree->leaf)
|
||||||
{
|
{
|
||||||
next = grub_be_to_cpu32 (EXTNODE (tree, i)->data);
|
next = grub_be_to_cpu32 (EXTNODE (tree, i)->data);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue