EapHost: Fix EapHostPeerGetSendPacket() call

The packet buffer returned by EapHostPeerGetSendPacket() shall not be
freed.

Signed-off-by: Simon Rozman <simon@rozman.si>
This commit is contained in:
Simon Rozman 2020-01-29 10:20:24 +01:00
parent 017766cb29
commit 3e04ca5181

View File

@ -120,17 +120,16 @@ void eap::method_eaphost::get_response_packet(
_In_opt_ DWORD size_max) _In_opt_ DWORD size_max)
{ {
// Let EapHost peer prepare response packet. // Let EapHost peer prepare response packet.
eap_blob_runtime _packet; LPBYTE _packet;
eap_error_runtime error; eap_error_runtime error;
DWORD dwResult = EapHostPeerGetSendPacket( DWORD dwResult = EapHostPeerGetSendPacket(
m_session_id, m_session_id,
&size_max, &size_max,
get_ptr(_packet), &_packet,
get_ptr(error)); get_ptr(error));
if (dwResult == ERROR_SUCCESS) { if (dwResult == ERROR_SUCCESS) {
// Packet successfuly prepared. // Packet successfuly prepared.
LPCBYTE __packet = _packet.get(); packet.assign(_packet, _packet + size_max);
packet.assign(__packet, __packet + size_max);
} else if (error) } else if (error)
throw eap_runtime_error(*error , __FUNCTION__ " EapHostPeerGetSendPacket failed."); throw eap_runtime_error(*error , __FUNCTION__ " EapHostPeerGetSendPacket failed.");
else else