Re: [PATCH] bcache: fix wrong usage use-after-freed on keylist in out_nocoalesce branch of btree_gc_coalesce

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2019/2/8 7:02 下午, Shenghui Wang wrote:
> Elements of keylist should be accessed before the list is freed.
> Move bch_keylist_free() calling after the while loop to avoid wrong
> content accessed.
> 
> Signed-off-by: Shenghui Wang <shhuiw@xxxxxxxxxxx>

Added to my for-test directory. Thanks.

Coly Li

> ---
>  drivers/md/bcache/btree.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/md/bcache/btree.c b/drivers/md/bcache/btree.c
> index 23cb1dc7296b..13671f381c44 100644
> --- a/drivers/md/bcache/btree.c
> +++ b/drivers/md/bcache/btree.c
> @@ -1475,11 +1475,11 @@ static int btree_gc_coalesce(struct btree *b, struct btree_op *op,
>  
>  out_nocoalesce:
>  	closure_sync(&cl);
> -	bch_keylist_free(&keylist);
>  
>  	while ((k = bch_keylist_pop(&keylist)))
>  		if (!bkey_cmp(k, &ZERO_KEY))
>  			atomic_dec(&b->c->prio_blocked);
> +	bch_keylist_free(&keylist);
>  
>  	for (i = 0; i < nodes; i++)
>  		if (!IS_ERR_OR_NULL(new_nodes[i])) {
> 


-- 

Coly Li



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux ARM Kernel]     [Linux Filesystem Development]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux