⛏️ index : haiku.git

author X512 <danger_mail@list.ru> 2022-11-05 19:16:40.0 +09:00:00
committer waddlesplash <waddlesplash@gmail.com> 2022-11-05 13:27:39.0 +00:00:00
commit
483f78eb367e122a5f4333108f7a9b9da54123fd [patch]
tree
def5e36ef87d4f7c9dd94e28dca6821827ab1db7
parent
36c5d2644df585e2ce5bb1c385adf26e055bf3dd
download
483f78eb367e122a5f4333108f7a9b9da54123fd.tar.gz

kernel/file_cache: fix VMCache object leak

Fixes #18039.

Change-Id: Ia3cda69f91e56efb36931a97028378ec3ceb2100
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5801
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
(cherry picked from commit 8be7c1aa586ca475ef6e2ee0a58d0d8f3932c550)
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5778
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

Diff

 src/system/kernel/cache/file_cache.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/system/kernel/cache/file_cache.cpp b/src/system/kernel/cache/file_cache.cpp
index c2e010e..0fcf611 100644
--- a/src/system/kernel/cache/file_cache.cpp
+++ b/src/system/kernel/cache/file_cache.cpp
@@ -959,8 +959,10 @@
	VMCache* cache;
	if (vfs_get_vnode_cache(vnode, &cache, false) != B_OK)
		return;
	if (cache->type != CACHE_TYPE_VNODE)
	if (cache->type != CACHE_TYPE_VNODE) {
		cache->ReleaseRef();
		return;
	}

	file_cache_ref* ref = ((VMVnodeCache*)cache)->FileCacheRef();
	off_t fileSize = cache->virtual_end;