From 8be7c1aa586ca475ef6e2ee0a58d0d8f3932c550 Mon Sep 17 00:00:00 2001 From: X512 Date: Sat, 5 Nov 2022 19:16:40 +0900 Subject: [PATCH] kernel/file_cache: fix VMCache object leak MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #18039. Change-Id: Ia3cda69f91e56efb36931a97028378ec3ceb2100 Reviewed-on: https://review.haiku-os.org/c/haiku/+/5801 Reviewed-by: Fredrik Holmqvist Reviewed-by: Jérôme Duval Tested-by: Commit checker robot --- 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 c2e010ecc9..0fcf611545 100644 --- a/src/system/kernel/cache/file_cache.cpp +++ b/src/system/kernel/cache/file_cache.cpp @@ -959,8 +959,10 @@ cache_prefetch_vnode(struct vnode* vnode, off_t offset, size_t size) 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;