From d1a6ea86f757f1b00b17e37d89db614a00c68067 Mon Sep 17 00:00:00 2001 From: Mark Jansen Date: Sat, 17 Sep 2016 17:54:16 +0000 Subject: [PATCH] [ATL] Do not corrupt the internal state of the CSimpleArray when allocation fails. Patch by Katayama Hirofumi MZ. CORE-11946 #comment Committed, thanks! svn path=/trunk/; revision=72705 --- reactos/sdk/lib/atl/atlsimpcoll.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/reactos/sdk/lib/atl/atlsimpcoll.h b/reactos/sdk/lib/atl/atlsimpcoll.h index 9564e53b991..3bf39c8e91c 100644 --- a/reactos/sdk/lib/atl/atlsimpcoll.h +++ b/reactos/sdk/lib/atl/atlsimpcoll.h @@ -182,16 +182,17 @@ public: { RemoveAll(); - m_nCapacity = src.GetSize(); + int nNewCount = src.GetSize(); - T *pNewData = (T *)realloc(m_pData, m_nCapacity * sizeof(T)); + T *pNewData = (T *)realloc(m_pData, nNewCount * sizeof(T)); ATLASSERT(pNewData); if (pNewData == NULL) return *this; // failure - // store new data and capacity + // store new m_pData = pNewData; - m_nCount = m_nCapacity; + m_nCount = nNewCount; + m_nCapacity = nNewCount; } else {