-
-
[求助] VirtualAlloc申请内存失败,错误8
-
-
[求助] 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;
}
[注意]看雪招聘,专注安全领域的专业人才平台!