Zizhi Wo
31ad74b202
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: c838305450 ("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 >
2024-11-11 14:39:38 +01:00
..
2024-09-12 12:20:41 +02:00
2024-08-07 11:33:21 +02:00
2024-09-16 13:07:59 +02:00
2024-09-27 18:29:20 +02:00
2024-08-30 08:22:36 +02:00
2024-09-29 09:17:44 -07:00
2024-05-31 12:31:39 +02:00
2024-08-07 11:33:21 +02:00
2024-09-23 11:49:02 -07:00
2024-11-11 14:39:38 +01:00
2024-09-28 08:40:36 -07:00
2024-08-19 13:45:03 +02:00
2024-06-17 20:42:57 +02:00
2024-07-15 11:14:59 -07:00
2024-05-19 09:21:03 -07:00
2024-09-27 08:18:43 -07:00
2024-09-27 08:18:43 -07:00
2024-08-07 11:33:21 +02:00
2024-09-27 08:18:43 -07:00
2024-07-15 11:14:59 -07:00
2024-09-12 23:00:09 +08:00
2024-09-23 21:38:13 +09:00
2024-05-28 15:57:23 +02:00
2024-09-16 09:14:02 +02:00
2024-09-23 09:35:36 -07:00
2024-09-24 15:12:38 -07:00
2024-08-07 11:33:21 +02:00
2024-03-26 09:04:53 +01:00
2024-09-27 08:18:43 -07:00
2024-09-23 11:55:17 -07:00
2024-08-07 11:33:21 +02:00
2024-08-07 11:33:21 +02:00
2024-08-07 11:33:21 +02:00
2024-08-07 11:33:21 +02:00
2024-08-07 11:33:21 +02:00
2024-09-20 17:53:17 -07:00
2024-09-02 15:52:56 +02:00
2024-08-26 23:49:15 -04:00
2024-08-19 13:40:00 +02:00
2024-09-19 06:38:43 +02:00
2024-05-04 19:02:39 +02:00
2024-09-20 19:31:03 -04:00
2024-08-07 11:33:36 +02:00
2024-10-07 13:45:29 +02:00
2024-09-24 15:44:18 -07:00
2024-09-23 15:03:30 -04:00
2024-09-23 15:03:30 -04:00
2024-09-21 08:20:50 -07:00
2024-06-03 16:37:07 +02:00
2024-09-23 09:35:36 -07:00
2024-08-07 11:33:21 +02:00
2024-09-26 14:01:45 -07:00
2024-08-07 11:33:21 +02:00
2024-06-20 09:46:01 +02:00
2024-09-20 19:34:00 -07:00
2024-09-27 12:38:47 -07:00
2024-09-24 11:08:40 -07:00
2024-09-19 10:18:15 +02:00
2024-05-28 11:52:53 +02:00
2024-08-07 11:31:56 +02:00
2024-09-23 10:49:28 -07:00
2024-04-25 20:56:25 -07:00
2024-08-07 11:33:36 +02:00
2024-08-21 22:32:58 +02:00
2024-09-28 08:35:21 -07:00
2024-09-21 08:20:50 -07:00
2024-04-23 13:27:43 +02:00
2024-08-07 11:33:36 +02:00
2024-07-22 18:25:47 -07:00
2024-09-05 10:18:48 -04:00
2024-09-27 08:18:43 -07:00
2024-09-16 09:14:02 +02:00
2024-09-16 09:14:02 +02:00
2024-06-20 19:30:02 -04:00
2024-08-07 11:32:02 +02:00
2024-08-20 14:03:18 -04:00
2024-09-23 09:35:36 -07:00
2024-09-03 15:01:23 +02:00
2024-08-19 13:45:03 +02:00
2024-04-26 10:33:05 +02:00
2024-08-29 06:20:44 +12:00
2024-08-23 13:08:31 +02:00
2024-08-26 13:00:38 -07:00
2024-09-26 11:39:02 -07:00
2024-08-09 20:19:00 -07:00
2024-07-15 11:14:59 -07:00
2024-05-28 12:06:51 +02:00
2024-08-07 11:26:54 -07:00
2024-09-16 08:54:30 +02:00
2024-09-26 11:39:02 -07:00
2024-04-25 20:56:20 -07:00
2024-09-16 08:35:09 +02:00
2024-08-19 13:45:02 +02:00
2024-07-24 20:59:29 +02:00
2024-08-12 22:00:43 -04:00
2024-09-23 09:35:36 -07:00
2024-09-21 07:29:05 -07:00
2024-09-23 09:35:36 -07:00
2024-09-23 09:35:36 -07:00
2024-09-18 08:53:53 +02:00
2024-09-23 09:35:36 -07:00
2024-07-02 06:20:49 +02:00
2024-08-30 08:22:39 +02:00
2024-09-27 08:18:43 -07:00
2024-09-23 10:05:41 -07:00
2024-08-28 13:05:39 +02:00
2024-08-12 22:00:43 -04:00
2024-09-24 15:44:18 -07:00
2024-06-19 13:13:55 -07:00
2024-08-12 22:00:43 -04:00
2024-09-16 08:54:30 +02:00
2024-09-23 09:35:36 -07:00
2024-08-06 09:01:41 -07:00
2024-02-27 11:21:31 +01:00
2024-09-24 15:29:42 -07:00
2024-09-16 11:15:26 +02:00
2024-05-31 12:31:43 +02:00
2024-09-23 09:35:36 -07:00
2024-09-24 15:29:42 -07:00
2024-09-27 08:18:43 -07:00
2024-09-23 09:35:36 -07:00
2024-09-27 18:29:19 +02:00
2024-09-27 08:18:43 -07:00
2024-08-30 08:22:37 +02:00
2024-06-28 14:36:43 +02:00
2024-09-23 09:35:36 -07:00
2024-08-12 22:00:43 -04:00
2024-08-12 22:00:43 -04:00
2024-09-23 09:35:36 -07:00
2024-05-02 16:28:20 +02:00
2024-09-23 09:35:36 -07:00
2024-08-12 22:00:43 -04:00
2024-08-12 22:00:43 -04:00
2024-08-12 22:00:43 -04:00
2024-09-16 08:35:09 +02:00
2024-08-12 22:00:43 -04:00
2024-08-12 22:00:43 -04:00
2024-09-01 20:25:57 -07:00
2024-08-12 22:00:43 -04:00
2024-08-12 22:00:43 -04:00