[PATCH RESEND 0/5] cachefiles: some bugfixes for withdraw and xattr

From: libaokun
Date: Wed May 22 2024 - 00:06:23 EST


From: Baokun Li <libaokun1@xxxxxxxxxx>

Hi all!

There are some fixes for some cachefiles generic processes. We found these
issues when testing the on-demand mode, but the non-on-demand mode is also
involved. The following is a brief overview of the patches, see the patches
for more details.

Patch 1-2: Add fscache_try_get_volume() helper function to avoid
fscache_volume use-after-free on cache withdrawal.

Patch 3: Fix cachefiles_lookup_cookie() and cachefiles_withdraw_cache()
concurrency causing cachefiles_volume use-after-free.

Patch 4-5: Propagate error codes returned by vfs_getxattr() to avoid
endless loops.

Comments and questions are, as always, welcome.

Thanks,
Baokun

Baokun Li (5):
netfs, fscache: export fscache_put_volume() and add
fscache_try_get_volume()
cachefiles: fix slab-use-after-free in fscache_withdraw_volume()
cachefiles: fix slab-use-after-free in cachefiles_withdraw_cookie()
cachefiles: correct the return value of
cachefiles_check_volume_xattr()
cachefiles: correct the return value of cachefiles_check_auxdata()

fs/cachefiles/cache.c | 45 +++++++++++++++++++++++++++++++++-
fs/cachefiles/volume.c | 1 -
fs/cachefiles/xattr.c | 5 +++-
fs/netfs/fscache_volume.c | 14 +++++++++++
fs/netfs/internal.h | 2 --
include/linux/fscache-cache.h | 6 +++++
include/trace/events/fscache.h | 4 +++
7 files changed, 72 insertions(+), 5 deletions(-)

--
2.39.2