CVS: winex/dlls/winsock socket.c,1.49,1.50
[email protected] 31 Jul 2007 19:52:40 -0000
| Newsgroups | gmane.comp.emulators.winex.cvs |
|---|---|
| Message-ID | <[email protected]> |
Subject: winex/dlls/winsock socket.c,1.49,1.50Update of /var/lib/cvsd/cvsroot/winex/dlls/winsock
In directory agravaine:/tmp/cvs-serv1417/dlls/winsock
Modified Files:
socket.c
Log Message:
- memory leak fix
- ensure rest of sockaddr structure is zero'd out
Index: socket.c
===================================================================
RCS file: /var/lib/cvsd/cvsroot/winex/dlls/winsock/socket.c,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -d -r1.49 -r1.50
--- socket.c 31 Jul 2007 19:50:58 -0000 1.49
+++ socket.c 31 Jul 2007 19:52:38 -0000 1.50
@@ -1081,6 +1081,24 @@
break;
#endif
+ case AF_INET: {
+ const struct sockaddr_in *sin = (const struct sockaddr_in *)uaddr;
+ struct WS_sockaddr_in *wsin =
+ (struct WS_sockaddr_in *)wsaddr;
+
+ if (*wsaddrlen < sizeof (struct WS_sockaddr_in))
+ return -1;
+
+ *wsaddrlen = sizeof (struct WS_sockaddr_in);
+
+ memset (wsin, 0, *wsaddrlen);
+ wsin->sin_family = WS_AF_INET;
+ wsin->sin_port = sin->sin_port;
+ memcpy (&wsin->sin_addr, &sin->sin_addr, 4);
+ res = 0;
+ break;
+ }
+
default:
/* No conversion needed */
memcpy(wsaddr,uaddr,*wsaddrlen);
@@ -1881,8 +1899,10 @@
else
{
res=0;
+ dump_sockaddr(name);
}
close(fd);
+ ws_sockaddr_free (uaddr, name);
}
else
{