Re: [PATCH v2] Fix NULL pointer dereference in read_cache_folio
From: Matthew Wilcox
Date: Mon Sep 30 2024 - 14:15:10 EST
On Mon, Sep 30, 2024 at 11:02:26AM +0200, Gianfranco Trad wrote:
> @@ -2360,6 +2360,8 @@ static int filemap_read_folio(struct file *file, filler_t filler,
> /* Start the actual read. The read will unlock the page. */
> if (unlikely(workingset))
> psi_memstall_enter(&pflags);
> + if (!filler)
> + return -EIO;
This is definitely wrong because you enter memstall, but do not exit it.
As Andrew says, the underlying problem is that the filesystem does not
implement ->read_folio. Which filesystem is this?
> error = filler(file, folio);
> if (unlikely(workingset))
> psi_memstall_leave(&pflags);
> --
> 2.43.0
>