Baokun Li
38e9216163
cachefiles: fix memory leak in cachefiles_add_cache()
...
commit e21a2f17566cbd64926fb8f16323972f7a064444 upstream.
The following memory leak was reported after unbinding /dev/cachefiles:
==================================================================
unreferenced object 0xffff9b674176e3c0 (size 192):
comm "cachefilesd2", pid 680, jiffies 4294881224
hex dump (first 32 bytes):
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace (crc ea38a44b):
[<ffffffff8eb8a1a5>] kmem_cache_alloc+0x2d5/0x370
[<ffffffff8e917f86>] prepare_creds+0x26/0x2e0
[<ffffffffc002eeef>] cachefiles_determine_cache_security+0x1f/0x120
[<ffffffffc00243ec>] cachefiles_add_cache+0x13c/0x3a0
[<ffffffffc0025216>] cachefiles_daemon_write+0x146/0x1c0
[<ffffffff8ebc4a3b>] vfs_write+0xcb/0x520
[<ffffffff8ebc5069>] ksys_write+0x69/0xf0
[<ffffffff8f6d4662>] do_syscall_64+0x72/0x140
[<ffffffff8f8000aa>] entry_SYSCALL_64_after_hwframe+0x6e/0x76
==================================================================
Put the reference count of cache_cred in cachefiles_daemon_unbind() to
fix the problem. And also put cache_cred in cachefiles_add_cache() error
branch to avoid memory leaks.
Fixes: 9ae326a69004 ("CacheFiles: A cache that backs onto a mounted filesystem")
CC: stable@vger.kernel.org
Signed-off-by: Baokun Li <libaokun1@huawei.com>
Link: https://lore.kernel.org/r/20240217081431.796809-1-libaokun1@huawei.com
Acked-by: David Howells <dhowells@redhat.com>
Reviewed-by: Jingbo Xu <jefflexu@linux.alibaba.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-03-01 13:35:00 +01:00
..
2024-02-05 20:14:32 +00:00
2023-08-29 20:21:42 -07:00
2023-08-29 20:21:42 -07:00
2024-02-05 20:14:16 +00:00
2023-08-28 11:39:14 -07:00
2023-08-29 20:21:42 -07:00
2023-08-29 20:21:42 -07:00
2024-03-01 13:34:58 +01:00
2024-03-01 13:35:00 +01:00
2024-02-23 09:25:16 +01:00
2023-08-28 09:31:32 -07:00
2023-07-13 10:28:05 +02:00
2023-08-28 11:04:18 -07:00
2024-01-20 11:51:37 +01:00
2023-08-28 10:17:14 -07:00
2024-01-31 16:18:54 -08:00
2024-02-05 20:14:17 +00:00
2024-01-25 15:35:15 -08:00
2023-08-29 20:21:42 -07:00
2024-02-05 20:14:16 +00:00
2023-11-28 17:19:44 +00:00
2023-08-29 17:45:22 -04:00
2023-12-08 08:52:19 +01:00
2024-03-01 13:34:52 +01:00
2024-02-05 20:14:28 +00:00
2023-08-29 20:21:42 -07:00
2023-08-29 20:21:42 -07:00
2024-01-31 16:19:01 -08:00
2023-12-20 17:01:52 +01:00
2024-01-25 15:35:17 -08:00
2023-08-29 20:21:42 -07:00
2023-08-29 20:21:42 -07:00
2023-07-24 10:30:00 +02:00
2023-08-29 20:21:42 -07:00
2024-02-23 09:25:16 +01:00
2023-10-19 09:41:36 -07:00
2023-08-29 20:21:42 -07:00
2024-01-20 11:51:43 +01:00
2023-07-24 10:30:01 +02:00
2024-02-05 20:14:16 +00:00
2024-02-05 20:14:32 +00:00
2023-08-29 17:45:22 -04:00
2023-08-29 20:21:42 -07:00
2023-09-18 12:03:46 -07:00
2024-01-25 15:35:18 -08:00
2024-02-23 09:25:25 +01:00
2024-02-23 09:25:27 +01:00
2023-08-31 12:07:34 -05:00
2023-10-19 16:19:20 +02:00
2023-08-29 20:21:42 -07:00
2024-03-01 13:34:54 +01:00
2023-08-31 15:18:15 -07:00
2023-08-29 20:21:42 -07:00
2023-07-24 10:30:03 +02:00
2023-08-11 09:04:57 +02:00
2023-12-03 07:33:03 +01:00
2024-02-23 09:25:17 +01:00
2024-02-05 20:14:16 +00:00
2023-08-29 20:21:42 -07:00
2023-08-29 20:21:42 -07:00
2023-11-28 17:20:04 +00:00
2023-07-24 10:30:04 +02:00
2024-02-05 20:14:26 +00:00
2023-08-29 20:21:42 -07:00
2024-03-01 13:34:57 +01:00
2023-07-24 10:30:05 +02:00
2023-08-29 20:21:42 -07:00
2024-02-23 09:25:25 +01:00
2024-01-31 16:18:56 -08:00
2023-08-30 12:10:50 -07:00
2023-08-29 20:21:42 -07:00
2023-08-28 09:31:32 -07:00
2023-08-20 10:33:43 -07:00
2024-02-16 19:10:46 +01:00
2024-02-23 09:25:13 +01:00
2024-03-01 13:34:59 +01:00
2023-08-28 10:17:14 -07:00
2023-08-11 09:04:57 +02:00
2023-09-29 17:20:45 -07:00
2023-06-28 20:35:21 -07:00
2023-07-13 10:28:04 +02:00
2023-09-25 08:55:00 -07:00
2023-06-26 09:50:21 -07:00
2024-01-10 17:16:53 +01:00
2024-02-05 20:14:26 +00:00
2023-06-28 10:28:11 -07:00
2023-08-18 10:12:11 -07:00
2023-07-11 11:41:34 +02:00
2023-07-26 14:56:07 +02:00
2024-01-31 16:19:06 -08:00
2023-07-10 14:36:11 +02:00
2023-08-08 19:36:51 +02:00
2023-08-28 10:17:14 -07:00
2023-10-12 18:53:36 +03:00
2023-08-21 13:46:25 -07:00
2023-11-20 11:58:52 +01:00
2023-08-14 18:48:02 +02:00
2023-12-03 07:33:03 +01:00
2023-08-29 20:21:42 -07:00
2024-01-31 16:18:54 -08:00
2023-08-29 20:21:42 -07:00
2023-08-23 14:17:43 -07:00
2023-08-19 12:12:12 +02:00
2024-01-05 15:19:40 +01:00
2023-08-31 15:32:18 -07:00
2023-08-02 09:13:09 -06:00
2024-01-31 16:18:57 -08:00
2024-02-23 09:25:15 +01:00
2023-07-13 10:28:04 +02:00
2023-12-20 17:01:51 +01:00
2024-01-31 16:19:09 -08:00
2023-07-13 10:28:04 +02:00
2023-08-15 08:32:45 +02:00
2023-08-06 15:08:35 +02:00
2023-08-29 14:25:26 -07:00
2023-07-13 10:28:04 +02:00
2023-12-03 07:33:03 +01:00
2023-08-31 12:47:15 +02:00
2023-08-24 16:20:27 -07:00
2023-08-22 10:57:46 +02:00