From 4e5ee468805439ca48edd54ca7360f0eedd1f974 Mon Sep 17 00:00:00 2001 From: iamdumb Date: Wed, 25 Feb 2026 19:51:45 +0530 Subject: [PATCH] btrfs: fixed comparison warnings in btree. * Added static_cast to resolve type mismatch warnings between signed integer(fSlots[level] and slot) and unsigned integers(ItemCount()) during compile * eliminated a potential unsigned underflow vunerability when a node is empty in NextLeaf() traversal logic Change-Id: I8534f31cac9dec41e04e16989427dc7d9abb26ef Reviewed-on: https://review.haiku-os.org/c/haiku/+/10363 Haiku-Format: Haiku-format Bot Reviewed-by: Fruit De La Passion Reviewed-by: Adrien Destugues Tested-by: Commit checker robot --- src/add-ons/kernel/file_systems/btrfs/BTree.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/add-ons/kernel/file_systems/btrfs/BTree.cpp b/src/add-ons/kernel/file_systems/btrfs/BTree.cpp index 41ec09b23a..2aab8727f4 100644 --- a/src/add-ons/kernel/file_systems/btrfs/BTree.cpp +++ b/src/add-ons/kernel/file_systems/btrfs/BTree.cpp @@ -360,7 +360,7 @@ BTree::Path::Move(int level, int step) fSlots[level] += step; if (fSlots[level] < 0) return -1; - if (fSlots[level] >= fNodes[level]->ItemCount()) + if (static_cast(fSlots[level]) >= fNodes[level]->ItemCount()) return 1; return 0; } @@ -371,7 +371,7 @@ BTree::Path::GetEntry(int slot, btrfs_key* _key, void** _value, uint32* _size, uint32* _offset) { BTree::Node* leaf = fNodes[0]; - if (slot < 0 || slot >= leaf->ItemCount()) + if (slot < 0 || static_cast(slot) >= leaf->ItemCount()) return B_ENTRY_NOT_FOUND; if (_key != NULL) @@ -806,7 +806,7 @@ BTree::NextLeaf(Path* path) const // iterate to the root until satisfy the condition while (true) { node = path->GetNode(level, &slot); - if (node == NULL || slot < node->ItemCount() - 1) + if (node == NULL || static_cast(slot + 1) < node->ItemCount()) break; level++; }