Jeff Latimer : ws2_32: WSAAddressToStringA should return length of ANSI address string and should include the trailing null .

Alexandre Julliard julliard at winehq.org
Mon Apr 20 11:33:12 CDT 2009


Module: wine
Branch: master
Commit: bf40710516d76fcdadaf14233605af63e00960e0
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=bf40710516d76fcdadaf14233605af63e00960e0

Author: Jeff Latimer <lats at yless4u.com.au>
Date:   Fri Apr 17 14:29:52 2009 +1000

ws2_32: WSAAddressToStringA should return length of ANSI address string and should include the trailing null.

---

 dlls/ws2_32/socket.c     |    3 ++-
 dlls/ws2_32/tests/sock.c |    2 ++
 2 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c
index 0031ad2..1bcff89 100644
--- a/dlls/ws2_32/socket.c
+++ b/dlls/ws2_32/socket.c
@@ -4805,7 +4805,7 @@ INT WINAPI WSAAddressToStringA( LPSOCKADDR sockaddr, DWORD len,
     p = strchr( buffer, ':' );
     if (!((SOCKADDR_IN *)sockaddr)->sin_port) *p = 0;
 
-    size = strlen( buffer );
+    size = strlen( buffer ) + 1;
 
     if (*lenstr <  size)
     {
@@ -4814,6 +4814,7 @@ INT WINAPI WSAAddressToStringA( LPSOCKADDR sockaddr, DWORD len,
         return SOCKET_ERROR;
     }
 
+    *lenstr = size;
     strcpy( string, buffer );
     return 0;
 }
diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c
index c46a3f1..eb76a86 100644
--- a/dlls/ws2_32/tests/sock.c
+++ b/dlls/ws2_32/tests/sock.c
@@ -1296,6 +1296,7 @@ static void test_WSAAddressToStringA(void)
     ok( !ret, "WSAAddressToStringA() failed unexpectedly: %d\n", WSAGetLastError() );
 
     ok( !strcmp( address, expect1 ), "Expected: %s, got: %s\n", expect1, address );
+    ok( len == sizeof( expect1 ), "Expected size to be %d, got %d\n", sizeof( expect1 ), len);
 
     len = sizeof(address);
 
@@ -1329,6 +1330,7 @@ static void test_WSAAddressToStringA(void)
     ok( !ret, "WSAAddressToStringA() failed unexpectedly: %d\n", WSAGetLastError() );
 
     ok( !strcmp( address, expect4 ), "Expected: %s, got: %s\n", expect4, address );
+    ok( len == sizeof( expect4 ), "Expected size to be %d, got %d\n", sizeof( expect4 ), len);
 }
 
 static void test_WSAAddressToStringW(void)




More information about the wine-cvs mailing list