Re: [BUG] xfs: NULL pointer dereference in xfs_buf.h: xfs_buf_daddr()

From: Dave Chinner

Date: Wed Nov 19 2025 - 01:41:12 EST


On Tue, Nov 18, 2025 at 10:06:49PM -0800, Christoph Hellwig wrote:
> On Tue, Nov 18, 2025 at 07:06:14PM +0800, 李天宇 wrote:
> > The kernel reports a kernel NULL pointer dereference when the sys_mount is called. This is triggered by the statement b_maps[0], where b_maps is NULL.
> >
> > This bug was discovered through a fuzzing framework on Linux v6.2
>
> Linux 6.2 is ancient (Feb 2023), and the buffer cache code has seen a
> major rewrite since:
>
> ch@brick:~/work/linux$ git diff v6.2..HEAD fs/xfs/xfs_buf.[ch] | diffstat
> xfs_buf.c | 1651 +++++++++++++++++++++++++++++++++++++++-----------------------------------------------------
> xfs_buf.h | 96 +++--
> 2 files changed, 768 insertions(+), 979 deletions(-)
>
> hch@brick:~/work/linux$ wc -l fs/xfs/xfs_buf.[ch]
> 2132 fs/xfs/xfs_buf.c
> 391 fs/xfs/xfs_buf.h
> 2523 total
>
> so I'm not sure how relevant this report is, especially without a good
> report.

It's not even a buffer cache bug. Something trashed a buffer
pointer in a btree cursor and xfs_buf_daddr() is the first
dereference to trip over it. It looks like random memory
corruption to me, so unless it is reproduced on a TOT kernel there's
no point spending any time looking at it...

-Dave.
--
Dave Chinner
david@xxxxxxxxxxxxx