Juan Lang : ws2_32: Don't overwrite address length before checking it.

Alexandre Julliard julliard at winehq.org
Mon Oct 19 09:56:11 CDT 2009


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Fri Oct 16 16:53:53 2009 -0700

ws2_32: Don't overwrite address length before checking it.

---

 dlls/ws2_32/socket.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c
index a8d3efc..35f7b07 100644
--- a/dlls/ws2_32/socket.c
+++ b/dlls/ws2_32/socket.c
@@ -1219,13 +1219,16 @@ static int ws_sockaddr_u2ws(const struct sockaddr* uaddr, struct WS_sockaddr* ws
         win6old->sin6_port     = uin6->sin6_port;
         win6old->sin6_flowinfo = uin6->sin6_flowinfo;
         memcpy(&win6old->sin6_addr,&uin6->sin6_addr,16); /* 16 bytes = 128 address bits */
-        *wsaddrlen = sizeof(struct WS_sockaddr_in6_old);
 #ifdef HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID
         if (*wsaddrlen >= sizeof(struct WS_sockaddr_in6)) {
             struct WS_sockaddr_in6* win6 = (struct WS_sockaddr_in6*)wsaddr;
             win6->sin6_scope_id = uin6->sin6_scope_id;
             *wsaddrlen = sizeof(struct WS_sockaddr_in6);
         }
+        else
+            *wsaddrlen = sizeof(struct WS_sockaddr_in6_old);
+#else
+        *wsaddrlen = sizeof(struct WS_sockaddr_in6_old);
 #endif
         return 0;
     }




More information about the wine-cvs mailing list