ack On Fri, May 21, 2021 at 11:52 AM Colin King wrote: > From: Colin Ian King > > The call to lower_bound can return -1 if the key is not found > with the bsearch, leading to a negative index access into > array node->keys[]. Ensure this cannot occur by checking for > a negative index before reading from the array. > > Addresses-Coverity: ("Negative array index read") > Fixes: d69e2e7e28bd ("dm btree: improve btree residency") > Signed-off-by: Colin Ian King > --- > drivers/md/persistent-data/dm-btree.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/md/persistent-data/dm-btree.c > b/drivers/md/persistent-data/dm-btree.c > index b8d21b6e2953..266deaea5eea 100644 > --- a/drivers/md/persistent-data/dm-btree.c > +++ b/drivers/md/persistent-data/dm-btree.c > @@ -1048,7 +1048,7 @@ static bool contains_key(struct btree_node *node, > uint64_t key) > { > int i = lower_bound(node, key); > > - if (le64_to_cpu(node->keys[i]) == key) > + if (i >= 0 && le64_to_cpu(node->keys[i]) == key) > return true; > > return false; > -- > 2.31.1 > >