From: Colin Ian King <[email protected]>
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 <[email protected]>
---
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
On Sun, Aug 29, 2021 at 8:18 PM Colin King <[email protected]> wrote:
>
> From: Colin Ian King <[email protected]>
>
> 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 <[email protected]>
> ---
> 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