Skip to content

Commit

Permalink
b-tree: return NULL on matras_alloc fail
Browse files Browse the repository at this point in the history
In bps_tree_create_leaf we use matras_alloc in case
bps_tree_garbage_pop didn't work out. However it also might not
succeed. Then we need to return NULL instead of dereferencing NULL
pointer.

Part of #3807
  • Loading branch information
PersDep committed Jan 20, 2020
1 parent 28370f1 commit 591f178
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions src/lib/salad/bps_tree.h
Expand Up @@ -2147,8 +2147,11 @@ bps_tree_create_leaf(struct bps_tree *tree, bps_tree_block_id_t *id)
{
struct bps_leaf *res = (struct bps_leaf *)
bps_tree_garbage_pop(tree, id);
if (!res)
res = (struct bps_leaf *)matras_alloc(&tree->matras, id);
if (res == NULL) {
res = (struct bps_leaf *) matras_alloc(&tree->matras, id);
if (res == NULL)
return NULL;
}
res->header.type = BPS_TREE_BT_LEAF;
tree->leaf_count++;
return res;
Expand Down

0 comments on commit 591f178

Please sign in to comment.