进程挂在WinHttpReceiveResponse()上

时间:2018-10-15 10:53:42

标签: c++ windows winapi winhttp winhttpcertcfg

我的进程在WinHttpRecieveResponse()处的下面的调用堆栈中挂起。此行为有时在相同的数据和相同的用例下都有效。但大多数情况下它像下面那样挂起。

我已使用WireShark检查是否在计算机上收到了响应。我可以在Wireshark中找到响应。但是WinHttpRecieveResponse()无法接收该数据。

请帮助我找到问题。

ntdll.dll!ZwWaitForSingleObject()   Unknown
KernelBase.dll!WaitForSingleObjectEx()  Unknown
winhttp.dll!HTTP_USER_REQUEST::_HandleSyncPending(class PENDING_API_CALL *,unsigned long *) Unknown
winhttp.dll!HTTP_USER_REQUEST::RecvResponse(int,void (*)(void *,unsigned __int64,unsigned long,void *,unsigned long),unsigned long,unsigned __int64)    Unknown
winhttp.dll!WinHttpReceiveResponse()    Unknown
atimport.dll!winHTTPStream::DoWaitForResponse(btkTimeval waitTime) Line 525 C++
atimport.dll!btkHTTPStreamBase::IsResponse(btkTimeval Timeout) Line 301 C++
atimport.dll!btkHTTPStreamBase::CompleteOutput(bool Blocking) Line 608  C++
atimport.dll!UwgmServerCache_i::executeHttpRequest(btkHTTPStreamBase * connection, xstring & responseStr, xstring reqBody) Line 11207   C++
atimport.dll!UwgmUploadAction_i::getChapteredUploadDescriptorsFromServer() Line 4480    C++
atimport.dll!UwgmUploadAction_i::prepareForUpload() Line 4557   C++
atimport.dll!UwgmUploadAction_i::onWorkspaceActionStart() Line 6401 C++
atimport.dll!UwgmWorkspaceModificationAction_i::onWorkspaceModificationActionStart() Line 6965  C++
atimport.dll!UwgmWorkspaceAction_i::onStart() Line 3689 C++
atimport.dll!UwgmAction_i::run() Line 636   C++
atimport.dll!UwgmAction_i::start(xstring msg) Line 580  C++
atimport.dll!UwgmAction_i::execute(xstring msg) Line 494    C++
atimport.dll!UwgmAction_i::execute() Line 489   C++
atimport.dll!atwncintBaseUtils_uwgmcc::executeAction(xrchandle<UwgmClientConnectorAction> ccAction, xstring logStr) Line 533    C++
atimport.dll!atwncintWorkspace_uwgmcc::upload(xrchandle<UwgmUploadAction> uploader) Line 1166   C++
atimport.dll!atwncintWorkspace_uwgmcc::upload(xrchandle<xstringsequence> docCadNames, atwncintGhostResolutionOption ghostResolutionOption) Line 1231    C++
atimport.dll!atwncintWorkspace_uwgmcc::checkin(xrchandle<xstringsequence> docCadNames, xrchandle<xstringsequence> targetFolderPaths, const char * comment, xrchandle<atwncintPostCheckinOptionDict> postCheckinOpts, xrchandle<atwncintBaselineInfo> baseline, xrchandle<xstringsequence> addToBaselineNames, atwncintGhostResolutionOption ghostResolutionOption) Line 1324    C++
atimport.dll!Java_com_ptc_prowt_Implementation_atwncint_1k03_00024Workspace_checkin(JNIEnv_ * _env, _jobject * _self, _jobject * docNames, _jobject * targetFolderPaths, _jstring * comment, _jobject * postCheckinOptions, _jobject * baseline, _jobject * addToBaselineNames, _jobject * ghostResolutionOption) Line 8657 C++
000000000a681df0()  Unknown
000000000513d9f8()  Unknown
0000000000533468()  Unknown
000000002b64d490()  Unknown
000000002b7fde38()  Unknown

1 个答案:

答案 0 :(得分:0)

找到了解决此问题的方法。 实际上,在此调用之前,有bufferoverflow破坏了我的堆。 修复bufferoverflow解决了我的问题。