|
1鱼币
sub eax, _PAGESIZE_ ; decrease by PAGESIZE
test dword ptr [eax],eax ; probe page.
jmp short cs10
if (dis.available() > 4)这个条件是没有问题的,调试模式第二次进入这个递归就溢出了!
代码块
ParseData(CDataInputStream &dis){ try { ////数据长度 int data_length = dis.readInt();//数据包的长度 if(data_length < 32) return; byte command[33];//command dis.read(command,32); command[32] = '\0'; CString str_command(command); this->token = dis.readInt();//token int srcLength = data_length - 36;//减去token和command长度-32-4 byte *srcData = new byte[srcLength];//就等于content的长度 dis.read(srcData,srcLength); unsigned long dLen = 512000;//500kb数据 byte temp[512000] = {0};//500kb数据 uncompress(temp,&dLen,srcData,srcLength); delete[] srcData; if (dis.available() > 4) ParseData(dis); } catch (CException* e) { char errorMsg[INFO_SIZE]; e->GetErrorMessage(errorMsg,INFO_SIZE); strcat_s(errorMsg,"P002"); GT_WriteReleaseLog(errorMsg); }
|
|