diff options
| author | Zizhi Wo <wozizhi@huawei.com> | 2024-11-07 19:06:48 +0800 | 
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2024-11-11 14:39:38 +0100 | 
| commit | 31ad74b20227ce6b40910ff78b1c604e42975cf1 (patch) | |
| tree | 36aab27035108a3eedddf92c30ce91a7e1674d00 /drivers/usb/cdns3/cdns3-trace.c | |
| parent | 09ecf8f5505465b5527a39dff4b159af62306eee (diff) | |
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 'drivers/usb/cdns3/cdns3-trace.c')
0 files changed, 0 insertions, 0 deletions
