mirror of
https://github.com/ttttupup/wxhelper.git
synced 2024-11-25 11:49:24 +08:00
fix: free heap bug
This commit is contained in:
parent
9b643901cd
commit
53a7938335
@ -251,25 +251,25 @@ INT64 Manager::SendImageMsg(const std::wstring& wxid, const std::wstring& image_
|
|||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
// todo bug 9/10
|
|
||||||
INT64 Manager::SendFileMsg(const std::wstring& wxid, const std::wstring& file_path){
|
INT64 Manager::SendFileMsg(const std::wstring& wxid, const std::wstring& file_path){
|
||||||
INT64 success = -1;
|
INT64 success = -1;
|
||||||
prototype::WeChatString* to_user= (prototype::WeChatString*)HeapAlloc(GetProcessHeap(),0,sizeof(prototype::WeChatString));
|
prototype::WeChatString* to_user= (prototype::WeChatString*)HeapAlloc(GetProcessHeap(),0,sizeof(prototype::WeChatString));
|
||||||
wchar_t * ptr_wxid = (wchar_t*)HeapAlloc(GetProcessHeap(),0,wxid.length()+1);
|
wchar_t * ptr_wxid = (wchar_t*)HeapAlloc(GetProcessHeap(),0,(wxid.length()+1)*2);
|
||||||
wmemcpy(ptr_wxid,wxid.c_str(),wxid.length()+1);
|
wmemcpy(ptr_wxid,wxid.c_str(),wxid.length()+1);
|
||||||
to_user->ptr = ptr_wxid;
|
to_user->ptr = ptr_wxid;
|
||||||
to_user->length = static_cast<DWORD>(wxid.length());
|
to_user->length = static_cast<DWORD>(wxid.length());
|
||||||
to_user->max_length = static_cast<DWORD>(wxid.length());
|
to_user->max_length = static_cast<DWORD>(wxid.length());
|
||||||
to_user->c_len=0;
|
to_user->c_len=0;
|
||||||
to_user->c_ptr=0;
|
to_user->c_ptr=0;
|
||||||
prototype::WeChatString* image_full_path= (prototype::WeChatString*)HeapAlloc(GetProcessHeap(),0,sizeof(prototype::WeChatString));
|
prototype::WeChatString* file_full_path= (prototype::WeChatString*)HeapAlloc(GetProcessHeap(),0,sizeof(prototype::WeChatString));
|
||||||
wchar_t * ptr_path = (wchar_t*)HeapAlloc(GetProcessHeap(),0,file_path.length()+1);
|
wchar_t * ptr_path = (wchar_t*)HeapAlloc(GetProcessHeap(),0,(file_path.length()+1)*2);
|
||||||
wmemcpy(ptr_path,file_path.c_str(),file_path.length()+1);
|
wmemcpy(ptr_path,file_path.c_str(),file_path.length()+1);
|
||||||
image_full_path->ptr = ptr_path;
|
file_full_path->ptr = ptr_path;
|
||||||
image_full_path->length = static_cast<DWORD>(file_path.length());
|
file_full_path->length = static_cast<DWORD>(file_path.length());
|
||||||
image_full_path->max_length = static_cast<DWORD>(file_path.length());
|
file_full_path->max_length = static_cast<DWORD>(file_path.length());
|
||||||
image_full_path->c_len = 0;
|
file_full_path->c_len = 0;
|
||||||
image_full_path->c_ptr = 0;
|
file_full_path->c_ptr = 0;
|
||||||
|
|
||||||
UINT64 get_app_msg_mgr_addr = base_addr_ + offset::kGetAppMsgMgr;
|
UINT64 get_app_msg_mgr_addr = base_addr_ + offset::kGetAppMsgMgr;
|
||||||
UINT64 send_file_addr = base_addr_ + offset::kSendFileMsg;
|
UINT64 send_file_addr = base_addr_ + offset::kSendFileMsg;
|
||||||
@ -293,26 +293,15 @@ INT64 Manager::SendFileMsg(const std::wstring& wxid, const std::wstring& file_pa
|
|||||||
ZeroMemory(temp3,sizeof(UINT64)*4);
|
ZeroMemory(temp3,sizeof(UINT64)*4);
|
||||||
ZeroMemory(temp4,sizeof(UINT64)*4);
|
ZeroMemory(temp4,sizeof(UINT64)*4);
|
||||||
*temp4=0x1F;
|
*temp4=0x1F;
|
||||||
UINT64 temp5 = 0xC;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
UINT64 app_mgr = get_app_mgr();
|
UINT64 app_mgr = get_app_mgr();
|
||||||
// UINT64 p_chat_msg = new_chat_msg(reinterpret_cast<UINT64>(chat_msg));
|
|
||||||
// send_file(app_mgr, p_chat_msg, reinterpret_cast<UINT64>(to_user),
|
|
||||||
// reinterpret_cast<UINT64>(image_full_path), 1,
|
|
||||||
// reinterpret_cast<UINT64>(temp1), 0x300,
|
|
||||||
// reinterpret_cast<UINT64>(temp2), 0,
|
|
||||||
// reinterpret_cast<UINT64>(temp3),
|
|
||||||
// reinterpret_cast<UINT64>(temp4),
|
|
||||||
// temp5);
|
|
||||||
|
|
||||||
send_file(app_mgr, reinterpret_cast<UINT64>(chat_msg),
|
send_file(app_mgr, reinterpret_cast<UINT64>(chat_msg),
|
||||||
reinterpret_cast<UINT64>(to_user),
|
reinterpret_cast<UINT64>(to_user),
|
||||||
reinterpret_cast<UINT64>(image_full_path), 1,
|
reinterpret_cast<UINT64>(file_full_path), 1,
|
||||||
reinterpret_cast<UINT64>(temp1), 0, reinterpret_cast<UINT64>(temp2),
|
reinterpret_cast<UINT64>(temp1), 0, reinterpret_cast<UINT64>(temp2),
|
||||||
0, reinterpret_cast<UINT64>(temp3), 0, 0x0);
|
0, reinterpret_cast<UINT64>(temp3), 0, 0);
|
||||||
free(reinterpret_cast<UINT64>(chat_msg));
|
free(reinterpret_cast<UINT64>(chat_msg));
|
||||||
|
HeapFree(GetProcessHeap(),0,to_user);
|
||||||
|
HeapFree(GetProcessHeap(),0,file_full_path);
|
||||||
HeapFree(GetProcessHeap(),0,temp1);
|
HeapFree(GetProcessHeap(),0,temp1);
|
||||||
HeapFree(GetProcessHeap(),0,temp2);
|
HeapFree(GetProcessHeap(),0,temp2);
|
||||||
HeapFree(GetProcessHeap(),0,temp3);
|
HeapFree(GetProcessHeap(),0,temp3);
|
||||||
|
Loading…
Reference in New Issue
Block a user