PVOID APCFunction;
HANDLE Event = NULL;
PTRANSPORT_ADDRESS RemoteAddress;
- PSOCKADDR BindAddress;
+ PSOCKADDR BindAddress = NULL;
INT BindAddressLength;
HANDLE SockEvent;
PSOCKET_INFORMATION Socket;
RemoteAddress = HeapAlloc(GlobalHeap, 0, 0x6 + SocketAddressLength);
if (!RemoteAddress)
{
- HeapFree(GlobalHeap, 0, BindAddress);
+ if (BindAddress != NULL)
+ {
+ HeapFree(GlobalHeap, 0, BindAddress);
+ }
return MsafdReturnWithErrno(STATUS_INSUFFICIENT_RESOURCES, lpErrno, 0, NULL);
}
if (!NT_SUCCESS(Status))
{
HeapFree(GlobalHeap, 0, RemoteAddress);
- HeapFree(GlobalHeap, 0, BindAddress);
+ if (BindAddress != NULL)
+ {
+ HeapFree(GlobalHeap, 0, BindAddress);
+ }
return SOCKET_ERROR;
}
NtClose(SockEvent);
HeapFree(GlobalHeap, 0, RemoteAddress);
- HeapFree(GlobalHeap, 0, BindAddress);
+ if (BindAddress != NULL)
+ {
+ HeapFree(GlobalHeap, 0, BindAddress);
+ }
if (Status == STATUS_PENDING)
return WSA_IO_PENDING;