Re: [PATCH 06/10] cachefiles, erofs: Fix NULL deref in when cachefiles is not doing ondemand-mode

From: David Howells
Date: Mon Jan 22 2024 - 17:01:44 EST


Jingbo Xu <jefflexu@xxxxxxxxxxxxxxxxx> wrote:

> > - ret = cachefiles_ondemand_init_object(object);
> > - if (ret < 0)
> > - goto err_unuse;
> > + if (object->ondemand) {
> > + ret = cachefiles_ondemand_init_object(object);
> > + if (ret < 0)
> > + goto err_unuse;
> > + }
>
> I'm not sure if object->ondemand shall be checked by the caller or
> inside cachefiles_ondemand_init_object(), as
> cachefiles_ondemand_clean_object() is also called without checking
> object->ondemand. cachefiles_ondemand_clean_object() won't trigger the
> NULL oops as the called cachefiles_ondemand_send_req() will actually
> checks that.

Meh. The above doesn't actually build if CONFIG_CACHEFILES_ONDEMAND=N. I
think I have to push the check down into cachefiles_ondemand_init_object()
instead.

David