From ad6ad0f124076a9afce022ed4d5bb850089b78f8 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Mon, 25 Jan 2010 12:21:12 +0000 Subject: [PATCH] VMCache::Init(): Initialize the debug_* members before allocating the VMCacheRef object, since that can fail, in which case the subsequently called Delete() would use uninitialized pointers. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35279 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/vm/VMCache.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/system/kernel/vm/VMCache.cpp b/src/system/kernel/vm/VMCache.cpp index e98fa17ebb..bbe49c4654 100644 --- a/src/system/kernel/vm/VMCache.cpp +++ b/src/system/kernel/vm/VMCache.cpp @@ -594,6 +594,12 @@ VMCache::Init(uint32 cacheType) type = cacheType; fPageEventWaiters = NULL; +#if DEBUG_CACHE_LIST + debug_previous = NULL; + debug_next = NULL; + // initialize in case the following fails +#endif + fCacheRef = new(nogrow) VMCacheRef(this); if (fCacheRef == NULL) return B_NO_MEMORY; @@ -603,7 +609,6 @@ VMCache::Init(uint32 cacheType) if (gDebugCacheList) gDebugCacheList->debug_previous = this; - debug_previous = NULL; debug_next = gDebugCacheList; gDebugCacheList = this;