From 4b5b01dfe60200916f9acf955e4e53c7a12be26a Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sun, 17 Jul 2011 20:19:20 +0000 Subject: [PATCH] [MSAFD] - Fix several bugs in WSPGetSockName and WSPGetPeerName svn path=/trunk/; revision=52720 --- reactos/dll/win32/msafd/misc/dllmain.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/reactos/dll/win32/msafd/misc/dllmain.c b/reactos/dll/win32/msafd/misc/dllmain.c index 4fa46d728c0..87e5dcd1511 100644 --- a/reactos/dll/win32/msafd/misc/dllmain.c +++ b/reactos/dll/win32/msafd/misc/dllmain.c @@ -1810,13 +1810,13 @@ WSPGetSockName(IN SOCKET Handle, if (NT_SUCCESS(Status)) { - if (*NameLength >= SocketAddress->Address[0].AddressLength) + if (*NameLength >= Socket->SharedData.SizeOfLocalAddress) { Name->sa_family = SocketAddress->Address[0].AddressType; RtlCopyMemory (Name->sa_data, SocketAddress->Address[0].Address, SocketAddress->Address[0].AddressLength); - *NameLength = 2 + SocketAddress->Address[0].AddressLength; + *NameLength = Socket->SharedData.SizeOfLocalAddress; AFD_DbgPrint (MID_TRACE, ("NameLength %d Address: %x Port %x\n", *NameLength, ((struct sockaddr_in *)Name)->sin_addr.s_addr, ((struct sockaddr_in *)Name)->sin_port)); @@ -1882,7 +1882,7 @@ WSPGetPeerName(IN SOCKET s, } /* Allocate a buffer for the address */ - TdiAddressSize = sizeof(TRANSPORT_ADDRESS) + *NameLength; + TdiAddressSize = sizeof(TRANSPORT_ADDRESS) + Socket->SharedData.SizeOfRemoteAddress; SocketAddress = HeapAlloc(GlobalHeap, 0, TdiAddressSize); if ( SocketAddress == NULL ) @@ -1915,13 +1915,13 @@ WSPGetPeerName(IN SOCKET s, if (NT_SUCCESS(Status)) { - if (*NameLength >= SocketAddress->Address[0].AddressLength) + if (*NameLength >= Socket->SharedData.SizeOfRemoteAddress) { Name->sa_family = SocketAddress->Address[0].AddressType; RtlCopyMemory (Name->sa_data, SocketAddress->Address[0].Address, SocketAddress->Address[0].AddressLength); - *NameLength = 2 + SocketAddress->Address[0].AddressLength; + *NameLength = Socket->SharedData.SizeOfRemoteAddress; AFD_DbgPrint (MID_TRACE, ("NameLength %d Address: %s Port %x\n", *NameLength, ((struct sockaddr_in *)Name)->sin_addr.s_addr, ((struct sockaddr_in *)Name)->sin_port));