]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/fs/bfs.c (find_in_b_tree) [MODE_AFS]: Fix handling of exact
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 12 May 2012 11:35:58 +0000 (13:35 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 12 May 2012 11:35:58 +0000 (13:35 +0200)
match in inner node.

ChangeLog
grub-core/fs/bfs.c

index ab1f39e0a1009131c2fa8b062b2453421d48adcc..d303b108402b60af38c9116626896bc5ebeb7ec0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
index 41a5557f94ae4d29a73bc8312f2d84e5c311b496..6136ce3e41e07e3377e5fa8538cc9baf58fe77da 100644 (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--;