Author: cgutman
Date: Thu Dec  8 19:29:20 2011
New Revision: 54616

URL: http://svn.reactos.org/svn/reactos?rev=54616&view=rev
Log:
[WS2_32]
- Store WSAPROTOCOL_INFOW struct on the stack

Modified:
    trunk/reactos/dll/win32/ws2_32/misc/ns.c

Modified: trunk/reactos/dll/win32/ws2_32/misc/ns.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ws2_32/misc/ns.c?rev=54616&r1=54615&r2=54616&view=diff
==============================================================================
--- trunk/reactos/dll/win32/ws2_32/misc/ns.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/ws2_32/misc/ns.c [iso-8859-1] Thu Dec  8 19:29:20 
2011
@@ -371,7 +371,7 @@
 {
     INT ret, len;
     LPWSTR szTemp;
-    LPWSAPROTOCOL_INFOW lpProtoInfoW = NULL;
+    WSAPROTOCOL_INFOW ProtoInfoW;
 
     len = MultiByteToWideChar(CP_ACP,
                               0,
@@ -393,13 +393,7 @@
 
     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,24 +401,19 @@
                             0,
                             lpProtocolInfo->szProtocol,
                             -1,
-                            lpProtoInfoW->szProtocol,
-                            len);
+                            ProtoInfoW.szProtocol,
+                            WSAPROTOCOL_LEN + 1);
     }
 
     ret = WSAStringToAddressW(szTemp,
                               AddressFamily,
-                              lpProtoInfoW,
+                              &ProtoInfoW,
                               lpAddress,
                               lpAddressLength);
 
     HeapFree(GetProcessHeap(),
              0,
              szTemp );
-
-    if (lpProtocolInfo)
-        HeapFree(GetProcessHeap(),
-                 0,
-                 lpProtoInfoW);
 
     WSASetLastError(ret);
     return ret;


Reply via email to