From ab72da8b5c63d3d55ba29300de9ef90463b60105 Mon Sep 17 00:00:00 2001 From: YimingWu Date: Wed, 24 Apr 2024 09:35:04 +0200 Subject: [PATCH] Fix #120763: Fix memory leak in itasc cache `Cache::addChannel` would return early when new cache entry insertion isn't success, but the newly created cache entry isn't deleted upon return, this patch fixes this. Pull Request: https://projects.blender.org/blender/blender/pulls/120766 --- intern/itasc/Cache.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/intern/itasc/Cache.cpp b/intern/itasc/Cache.cpp index 85d948f77bd..367c69befda 100644 --- a/intern/itasc/Cache.cpp +++ b/intern/itasc/Cache.cpp @@ -214,8 +214,10 @@ int Cache::addChannel(const void *device, const char *name, unsigned int maxItem entry = new CacheEntry(); if (entry == NULL) return -1; - if (!m_cache.insert(CacheMap::value_type(device,entry)).second) + if (!m_cache.insert(CacheMap::value_type(device,entry)).second) { + delete entry; return -1; + } } else { entry = it->second; }