[dm-devel] [PATCH][next] dm btree: Fix potential read of array with negative index i

Edward Thornber thornber at redhat.com
Tue May 25 09:58:26 UTC 2021


ack

On Fri, May 21, 2021 at 11:52 AM Colin King <colin.king at canonical.com>
wrote:

> From: Colin Ian King <colin.king at canonical.com>
>
> 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 <colin.king at canonical.com>
> ---
>  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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/dm-devel/attachments/20210525/90442ba9/attachment.htm>


More information about the dm-devel mailing list