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; }