* grub-core/fs/bfs.c (find_in_b_tree) [MODE_AFS]: Fix handling of exact

match in inner node.
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2012-05-12 13:35:58 +02:00
parent 2e57f28fc7
commit 38c8ee20ca
2 changed files with 13 additions and 0 deletions

View file

@ -1,3 +1,8 @@
2012-05-12 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/fs/bfs.c (find_in_b_tree) [MODE_AFS]: Fix handling of exact
match in inner node.
2012-05-12 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/fs/bfs.c (mount): Improve filesystem detection reliability.

View file

@ -614,7 +614,11 @@ find_in_b_tree (grub_disk_t disk,
*res = grub_bfs_to_cpu64 (key_values[i | (1 << j)]);
return GRUB_ERR_NONE;
}
#ifdef MODE_AFS
if (cmp <= 0)
#else
if (cmp < 0)
#endif
i |= (1 << j);
}
if (i == 0)
@ -630,7 +634,11 @@ find_in_b_tree (grub_disk_t disk,
*res = grub_bfs_to_cpu64 (key_values[0]);
return GRUB_ERR_NONE;
}
#ifdef MODE_AFS
if (cmp > 0 && level != 0)
#else
if (cmp >= 0 && level != 0)
#endif
{
node_off = grub_bfs_to_cpu64 (key_values[0]);
level--;