- Store WSAPROTOCOL_INFOW struct on the stack

svn path=/trunk/; revision=54616
This commit is contained in:
Cameron Gutman 2011-12-08 19:29:20 +00:00
parent 1805dc67b0
commit de4cb19466

View file

@ -371,7 +371,7 @@ WSAStringToAddressA(IN LPSTR AddressString,
{
INT ret, len;
LPWSTR szTemp;
LPWSAPROTOCOL_INFOW lpProtoInfoW = NULL;
WSAPROTOCOL_INFOW ProtoInfoW;
len = MultiByteToWideChar(CP_ACP,
0,
@ -393,13 +393,7 @@ WSAStringToAddressA(IN LPSTR AddressString,
if (lpProtocolInfo)
{
len = WSAPROTOCOL_LEN+1;
lpProtoInfoW = HeapAlloc(GetProcessHeap(),
0,
FIELD_OFFSET(WSAPROTOCOL_INFOW, szProtocol) +
(len * sizeof(WCHAR)));
memcpy(lpProtoInfoW,
memcpy(&ProtoInfoW,
lpProtocolInfo,
FIELD_OFFSET(WSAPROTOCOL_INFOA, szProtocol));
@ -407,13 +401,13 @@ WSAStringToAddressA(IN LPSTR AddressString,
0,
lpProtocolInfo->szProtocol,
-1,
lpProtoInfoW->szProtocol,
len);
ProtoInfoW.szProtocol,
WSAPROTOCOL_LEN + 1);
}
ret = WSAStringToAddressW(szTemp,
AddressFamily,
lpProtoInfoW,
&ProtoInfoW,
lpAddress,
lpAddressLength);
@ -421,11 +415,6 @@ WSAStringToAddressA(IN LPSTR AddressString,
0,
szTemp );
if (lpProtocolInfo)
HeapFree(GetProcessHeap(),
0,
lpProtoInfoW);
WSASetLastError(ret);
return ret;
}