Re: NULL pointer dereference when access /proc/net

From: Al Viro
Date: Sun Apr 25 2021 - 12:51:10 EST


On Sun, Apr 25, 2021 at 11:22:15PM +0800, haosdent wrote:
> Hi, Alexander Viro and dear Linux Filesystems maintainers, recently we
> encounter a NULL pointer dereference Oops in our production.
>
> We have attempted to analyze the core dump and compare it with source code
> in the past few weeks, currently still could not understand why
> `dentry->d_inode` become NULL while other fields look normal.

Not really - the crucial part is ->d_count == -128, i.e. it's already past
__dentry_kill().

> [19521409.514784] RIP: 0010:__atime_needs_update+0x5/0x190

Which tree is that? __atime_needs_update() had been introduced in
4.8 and disappeared in 4.18; anything of that age straight on mainline
would have a plenty of interesting problems. If you have some patches
applied on top of that... Depends on what those are, obviously.