-
-
[求助] VirtualAlloc申请内存失败,错误8
-
发表于:
2017-5-2 21:46
5220
-
[求助] VirtualAlloc申请内存失败,错误8
在研究gh0st的文件传输功能的时候发现一个bug,传输大文件的时候,传输时间长了,会申请内存失败,错误8(表示存储空间不足,无法处理此命令).代码在下面
UINT CBuffer::ReAllocateBuffer(UINT nRequestedSize)
{
if (nRequestedSize < GetMemSize())
return 0;
// Allocate new size
UINT nNewSize = (UINT) ceil(nRequestedSize / 1024.0) * 1024;
// New Copy Data Over
PBYTE pNewBuffer = (PBYTE) VirtualAlloc(NULL,nNewSize,MEM_COMMIT,PAGE_READWRITE);
if (pNewBuffer==0)
{
TRACE("Fail to VirtualAllo,error=%d\n",GetLastError());
}
UINT nBufferLen = GetBufferLen();
CopyMemory(pNewBuffer,m_pBase,nBufferLen);
if (m_pBase)
VirtualFree(m_pBase,0,MEM_RELEASE);
// Hand over the pointer
m_pBase = pNewBuffer;
// Realign position pointer
m_pPtr = m_pBase + nBufferLen;
m_nSize = nNewSize;
return m_nSize;
}
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)