Re: [PATCH][next] ceph: Fix dereference of null pointer cf

From: Ilya Dryomov
Date: Mon Aug 30 2021 - 06:14:50 EST


On Sun, Aug 29, 2021 at 8:18 PM Colin King <colin.king@xxxxxxxxxxxxx> wrote:
>
> From: Colin Ian King <colin.king@xxxxxxxxxxxxx>
>
> Currently in the case where kmem_cache_alloc fails the null pointer
> cf is dereferenced when assigning cf->is_capsnap = false. Fix this
> by adding a null pointer check and return path.
>
> Addresses-Coverity: ("Dereference null return")
> Fixes: b2f9fa1f3bd8 ("ceph: correctly handle releasing an embedded cap flush")
> Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
> ---
> fs/ceph/caps.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c
> index 39db97f149b9..eceb3ceaac48 100644
> --- a/fs/ceph/caps.c
> +++ b/fs/ceph/caps.c
> @@ -1746,6 +1746,8 @@ struct ceph_cap_flush *ceph_alloc_cap_flush(void)
> struct ceph_cap_flush *cf;
>
> cf = kmem_cache_alloc(ceph_cap_flush_cachep, GFP_KERNEL);
> + if (!cf)
> + return NULL;
> cf->is_capsnap = false;
> return cf;
> }
> --
> 2.32.0
>

Hi Colin,

I guess we were too focused on the details of b2f9fa1f3bd8 to spot the
obvious... It sat in next for a few days but apparently not enough to
be included in the Coverity run. What is the frequency of these runs?

Applied and added an explicit stable tag since b2f9fa1f3bd8 is already
on its way to stable kernels.

Thanks,

Ilya