Author: mjansen
Date: Sat Sep 17 17:54:16 2016
New Revision: 72705
URL:
http://svn.reactos.org/svn/reactos?rev=72705&view=rev
Log:
[ATL] Do not corrupt the internal state of the CSimpleArray when allocation fails. Patch
by Katayama Hirofumi MZ. CORE-11946 #comment Committed, thanks!
Modified:
trunk/reactos/sdk/lib/atl/atlsimpcoll.h
Modified: trunk/reactos/sdk/lib/atl/atlsimpcoll.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/lib/atl/atlsimpcoll.h?…
==============================================================================
--- trunk/reactos/sdk/lib/atl/atlsimpcoll.h [iso-8859-1] (original)
+++ trunk/reactos/sdk/lib/atl/atlsimpcoll.h [iso-8859-1] Sat Sep 17 17:54:16 2016
@@ -182,16 +182,17 @@
{
RemoveAll();
- m_nCapacity = src.GetSize();
-
- T *pNewData = (T *)realloc(m_pData, m_nCapacity * sizeof(T));
+ int nNewCount = src.GetSize();
+
+ 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
{