Message ID | 20241202115638.28957-1-colyli@suse.de (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | bcache: revert replacing IS_ERR_OR_NULL with IS_ERR again | expand |
> 2024年12月2日 19:56,Coly Li <colyli@suse.de> 写道: > > From: Liequan Che <cheliequan@inspur.com> > > Commit 028ddcac477b ("bcache: Remove unnecessary NULL point check in > node allocations") leads a NULL pointer deference in cache_set_flush(). > > 1721 if (!IS_ERR_OR_NULL(c->root)) > 1722 list_add(&c->root->list, &c->btree_cache); > > From the above code in cache_set_flush(), if previous registration code > fails before allocating c->root, it is possible c->root is NULL as what > it is initialized. __bch_btree_node_alloc() never returns NULL but > c->root is possible to be NULL at above line 1721. > > This patch replaces IS_ERR() by IS_ERR_OR_NULL() to fix this. > > Fixes: 028ddcac477b ("bcache: Remove unnecessary NULL point check in node allocations") > Signed-off-by: Liequan Che <cheliequan@inspur.com> > Cc: stable@vger.kernel.org > Cc: Zheng Wang <zyytlz.wz@163.com> > Reviewed-by: Mingzhe Zou <mingzhe.zou@easystack.cn> > Signed-off-by: Coly Li <colyli@suse.de> > --- > drivers/md/bcache/super.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Hi Jens, Could you please take this patch? It is tiny change but important, and good to have it in next rc release. Thank you in advance. Coly Li
On Mon, 02 Dec 2024 19:56:38 +0800, Coly Li wrote: > Commit 028ddcac477b ("bcache: Remove unnecessary NULL point check in > node allocations") leads a NULL pointer deference in cache_set_flush(). > > 1721 if (!IS_ERR_OR_NULL(c->root)) > 1722 list_add(&c->root->list, &c->btree_cache); > > >From the above code in cache_set_flush(), if previous registration code > fails before allocating c->root, it is possible c->root is NULL as what > it is initialized. __bch_btree_node_alloc() never returns NULL but > c->root is possible to be NULL at above line 1721. > > [...] Applied, thanks! [1/1] bcache: revert replacing IS_ERR_OR_NULL with IS_ERR again commit: b2e382ae12a63560fca35050498e19e760adf8c0 Best regards,
diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c index e7abfdd77c3b..e42f1400cea9 100644 --- a/drivers/md/bcache/super.c +++ b/drivers/md/bcache/super.c @@ -1718,7 +1718,7 @@ static CLOSURE_CALLBACK(cache_set_flush) if (!IS_ERR_OR_NULL(c->gc_thread)) kthread_stop(c->gc_thread); - if (!IS_ERR(c->root)) + if (!IS_ERR_OR_NULL(c->root)) list_add(&c->root->list, &c->btree_cache); /*