On Sat, Jun 14, 2025 at 09:55:05PM +0800, Alan Huang wrote:
> btree_interior_update_pool has not been initialized before the
> filesystem becomes read-write, thus mempool_alloc in bch2_btree_update_start
> will trigger pool->alloc NULL pointer dereference in mempool_alloc_noprof
> 
> Reported-by: [email protected]
> Signed-off-by: Alan Huang <[email protected]>
> ---
>  fs/bcachefs/chardev.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/fs/bcachefs/chardev.c b/fs/bcachefs/chardev.c
> index fde3c2380e28..ec8d0719a543 100644
> --- a/fs/bcachefs/chardev.c
> +++ b/fs/bcachefs/chardev.c
> @@ -378,6 +378,9 @@ static long bch2_ioctl_data(struct bch_fs *c,
>       struct bch_data_ctx *ctx;
>       int ret;
>  
> +     if (!test_bit(BCH_FS_rw, &c->flags))
> +             return -EINVAL;
> +

this isn't the right fix - we need to do a tryget and take a ref on
c->writes

>       if (!capable(CAP_SYS_ADMIN))
>               return -EPERM;
>  
> -- 
> 2.48.1
> 

Reply via email to