CVS: winex/dlls/winsock socket.c,1.48,1.49
[email protected] 31 Jul 2007 19:51:00 -0000
| Newsgroups | gmane.comp.emulators.winex.cvs |
|---|---|
| Message-ID | <[email protected]> |
Subject: winex/dlls/winsock socket.c,1.48,1.49Update of /var/lib/cvsd/cvsroot/winex/dlls/winsock
In directory agravaine:/tmp/cvs-serv1171/dlls/winsock
Modified Files:
socket.c
Log Message:
- ensure "unused" parts of sockaddr_in are zero'd out
- couple of warning fixes
Index: socket.c
===================================================================
RCS file: /var/lib/cvsd/cvsroot/winex/dlls/winsock/socket.c,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -d -r1.48 -r1.49
--- socket.c 31 Jul 2007 18:02:29 -0000 1.48
+++ socket.c 31 Jul 2007 19:50:58 -0000 1.49
@@ -958,6 +958,28 @@
}
#endif
+ case WS_AF_INET: {
+ struct sockaddr_in *sin;
+ const struct WS_sockaddr_in *wsin =
+ (const struct WS_sockaddr_in *)wsaddr;
+
+ if (wsaddrlen < sizeof (struct WS_sockaddr_in))
+ return NULL;
+
+ *uaddrlen = sizeof (struct sockaddr_in);
+ sin = HeapAlloc (GetProcessHeap (), HEAP_ZERO_MEMORY, *uaddrlen);
+ if (!sin)
+ return NULL;
+
+ sin->sin_family = AF_INET;
+ sin->sin_port = wsin->sin_port;
+ memcpy (&sin->sin_addr, &wsin->sin_addr, 4);
+#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
+ sin->sin_len = *uaddrlen;
+#endif
+ return (struct sockaddr *)sin;
+ }
+
default:
if (wsaddrlen<sizeof(struct WS_sockaddr))
return NULL;
@@ -1232,7 +1254,8 @@
dump_sockaddr (lpFrom);
hdr.msg_namelen = *lpFromlen;
- hdr.msg_name = ws_sockaddr_alloc ( lpFrom, lpFromlen, &hdr.msg_namelen );
+ hdr.msg_name = ws_sockaddr_alloc ( lpFrom, lpFromlen,
+ (int *)&hdr.msg_namelen );
if ( !hdr.msg_name )
{
WSASetLastError ( WSAEFAULT );
@@ -1343,7 +1366,8 @@
{
dump_sockaddr (to);
- hdr.msg_name = (struct sockaddr*) ws_sockaddr_ws2u ( to, tolen, &hdr.msg_namelen );
+ hdr.msg_name = (struct sockaddr*) ws_sockaddr_ws2u ( to, tolen,
+ (int *)&hdr.msg_namelen );
if ( !hdr.msg_name )
{
WSASetLastError ( WSAEFAULT );
@@ -1779,9 +1803,9 @@
if (fd != -1)
{
struct sockaddr* uaddr;
- int uaddrlen;
+ socklen_t uaddrlen;
- uaddr=ws_sockaddr_alloc(name,namelen,&uaddrlen);
+ uaddr=ws_sockaddr_alloc(name,namelen,(int *)&uaddrlen);
if (getpeername(fd, uaddr, &uaddrlen) != 0)
{
SetLastError(wsaErrno());
@@ -1842,9 +1866,9 @@
if (fd != -1)
{ struct sockaddr* uaddr;
- int uaddrlen;
+ socklen_t uaddrlen;
- uaddr=ws_sockaddr_alloc(name,namelen,&uaddrlen);
+ uaddr=ws_sockaddr_alloc(name,namelen,(int *)&uaddrlen);
if (getsockname(fd, uaddr, &uaddrlen) != 0)
{
SetLastError(wsaErrno());
@@ -1918,7 +1942,8 @@
if (!convert_sockopt(&level, &optname)) {
SetLastError(WSAENOPROTOOPT); /* Unknown option */
} else {
- if (getsockopt(fd, (int) level, optname, optval, optlen) == 0 )
+ if (getsockopt(fd, (int) level, optname, optval,
+ (socklen_t *)optlen) == 0 )
{
close(fd);
return 0;