]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
btree: Safeguard delete_leaf_node to prevent dereferencing null nodes 64961/head
authorEdwin Rodriguez <edwin.rodriguez1@ibm.com>
Thu, 7 Aug 2025 16:06:20 +0000 (12:06 -0400)
committerEdwin Rodriguez <edwin.rodriguez1@ibm.com>
Wed, 17 Sep 2025 11:54:28 +0000 (07:54 -0400)
Check if node is the EmptyNode() before trying to delete it

Fixes: https://tracker.ceph.com/issues/72446
Signed-off-by: Edwin Rodriguez <edwin.rodriguez1@ibm.com>
src/include/cpp-btree/btree.h

index 2eddc2abe80cf74d1c71fa0e7f1d11335ac43546..c6ad250ba197f95ed143e64d6489e2bea0ed8642 100644 (file)
@@ -1326,8 +1326,10 @@ class btree {
     deallocate(node_type::InternalSize(), node);
   }
   void delete_leaf_node(node_type *node) {
-    node->destroy(mutable_allocator());
-    deallocate(node_type::LeafSize(node->max_count()), node);
+    if (node != EmptyNode()) {
+      node->destroy(mutable_allocator());
+      deallocate(node_type::LeafSize(node->max_count()), node);
+    }
   }
 
   // Rebalances or splits the node iter points to.