Re: [PATCH 5/5] fs: Convert struct file::f_count to refcount_long_t

Al Viro
2024-05-02T23:12:34Z

On Thu, May 02, 2024 at 03:52:21PM -0700, Kees Cook wrote:

> As for semantics, what do you mean? Detecting dec-below-zero means we
> catch underflow, and detected inc-from-zero means we catch resurrection
> attempts. In both cases we avoid double-free, but we have already lost
> to a potential dangling reference to a freed struct file. But just
> letting f_count go bad seems dangerous.

Detected inc-from-zero can also mean an RCU lookup detecting a descriptor
in the middle of getting closed. And it's more subtle than that, actually,
thanks to SLAB_TYPESAFE_BY_RCU for struct file.