Re: [PATCH 2/2] xfs: make sure link path does not go away at access
From: Miklos Szeredi <miklos@szeredi.hu>
Date: 2021-11-16 10:12:42
Also in:
linux-fsdevel, lkml
From: Miklos Szeredi <miklos@szeredi.hu>
Date: 2021-11-16 10:12:42
Also in:
linux-fsdevel, lkml
On Tue, 16 Nov 2021 at 04:01, Dave Chinner [off-list ref] wrote:
I *think* that just zeroing the buffer means the race condition means the link resolves as either wholly intact, partially zeroed with trailing zeros in the length, wholly zeroed or zero length. Nothing will crash, the link string is always null terminated even if the length is wrong, and so nothing bad should happen as a result of zeroing the symlink buffer when it gets evicted from the VFS inode cache after unlink.
That's my thinking. However, modifying the buffer while it is being processed does seem pretty ugly, and I have to admit that I don't understand why this needs to be done in either XFS or EXT4.
The root cause is "allowing an inode to be reused without waiting for an RCU grace period to expire". This might seem pedantic, but "without waiting for an rcu grace period to expire" is the important part of the problem (i.e. the bug), not the "allowing an inode to be reused" bit.
Yes. Thanks, Miklos