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