aboutsummaryrefslogtreecommitdiff
path: root/rust/helpers/task.c
diff options
context:
space:
mode:
authorZizhi Wo <wozizhi@huawei.com>2024-11-07 19:06:48 +0800
committerChristian Brauner <brauner@kernel.org>2024-11-11 14:39:38 +0100
commit31ad74b20227ce6b40910ff78b1c604e42975cf1 (patch)
tree36aab27035108a3eedddf92c30ce91a7e1674d00 /rust/helpers/task.c
parent09ecf8f5505465b5527a39dff4b159af62306eee (diff)
downloadlinux-31ad74b20227ce6b40910ff78b1c604e42975cf1.tar.gz
linux-31ad74b20227ce6b40910ff78b1c604e42975cf1.tar.bz2
linux-31ad74b20227ce6b40910ff78b1c604e42975cf1.zip
cachefiles: Fix NULL pointer dereference in object->file
At present, the object->file has the NULL pointer dereference problem in ondemand-mode. The root cause is that the allocated fd and object->file lifetime are inconsistent, and the user-space invocation to anon_fd uses object->file. Following is the process that triggers the issue: [write fd] [umount] cachefiles_ondemand_fd_write_iter fscache_cookie_state_machine cachefiles_withdraw_cookie if (!file) return -ENOBUFS cachefiles_clean_up_object cachefiles_unmark_inode_in_use fput(object->file) object->file = NULL // file NULL pointer dereference! __cachefiles_write(..., file, ...) Fix this issue by add an additional reference count to the object->file before write/llseek, and decrement after it finished. Fixes: c8383054506c ("cachefiles: notify the user daemon when looking up cookie") Signed-off-by: Zizhi Wo <wozizhi@huawei.com> Link: https://lore.kernel.org/r/20241107110649.3980193-5-wozizhi@huawei.com Reviewed-by: David Howells <dhowells@redhat.com> Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'rust/helpers/task.c')
0 files changed, 0 insertions, 0 deletions