mirror of
https://github.com/solemnwarning/ipxwrapper
synced 2024-12-30 16:45:37 +01:00
Added missing initialisations of ipx_socket.addr.sa_family.
Field not used internally, but returned by getsockname() which can lead to whatever we're wrapping trying to use an invalid family later.
This commit is contained in:
parent
3b99400f4a
commit
d582e27e3e
@ -3,6 +3,8 @@ Version 0.6.0:
|
||||
the wire using WinPcap.
|
||||
|
||||
Bugfix: Include IPX socket number in address cache hash table key.
|
||||
|
||||
Bugfix: Correctly initialise local sa_family of SPX client sockets.
|
||||
|
||||
Version 0.5.0:
|
||||
Bugfix: Allow address reuse when only the binding socket has SO_REUSEADDR.
|
||||
|
@ -536,6 +536,8 @@ int WSAAPI bind(SOCKET fd, const struct sockaddr *addr, int addrlen)
|
||||
return -1;
|
||||
}
|
||||
|
||||
sock->addr.sa_family = AF_IPX;
|
||||
|
||||
/* Resolve any wildcards in the requested address. */
|
||||
|
||||
if(!_resolve_bind_address(sock, &ipxaddr))
|
||||
@ -1939,6 +1941,8 @@ static int _connect_spx(ipx_socket *sock, struct sockaddr_ipx *ipxaddr)
|
||||
|
||||
if(!(sock->flags & IPX_BOUND))
|
||||
{
|
||||
sock->addr.sa_family = AF_IPX;
|
||||
|
||||
struct sockaddr_in local_addr;
|
||||
int addrlen = sizeof(local_addr);
|
||||
|
||||
|
@ -74,6 +74,8 @@ int main(int argc, const char **argv)
|
||||
int addrlen = sizeof(addr);
|
||||
assert(getsockname(sock, (struct sockaddr*)(&addr), &addrlen) == 0);
|
||||
|
||||
assert(addr.sa_family == AF_IPX);
|
||||
|
||||
char bound_addr[IPX_SADDR_SIZE];
|
||||
ipx_to_string(bound_addr,
|
||||
addr32_in(addr.sa_netnum), addr48_in(addr.sa_nodenum), addr.sa_socket);
|
||||
|
@ -91,6 +91,8 @@ int main(int argc, char **argv)
|
||||
|
||||
assert(getsockname(sock, (struct sockaddr*)(&bound_addr), &addrlen) == 0);
|
||||
|
||||
assert(bound_addr.sa_family == AF_IPX);
|
||||
|
||||
char formatted_addr[IPX_SADDR_SIZE];
|
||||
ipx_to_string(formatted_addr,
|
||||
addr32_in(bound_addr.sa_netnum), addr48_in(bound_addr.sa_nodenum), bound_addr.sa_socket);
|
||||
|
@ -92,6 +92,8 @@ int main(int argc, char **argv)
|
||||
int addrlen = sizeof(bind_addr);
|
||||
assert(getsockname(sock, (struct sockaddr*)(&bind_addr), &addrlen) == 0);
|
||||
|
||||
assert(bind_addr.sa_family == AF_IPX);
|
||||
|
||||
char formatted_addr[IPX_SADDR_SIZE];
|
||||
ipx_to_string(formatted_addr,
|
||||
addr32_in(bind_addr.sa_netnum), addr48_in(bind_addr.sa_nodenum), bind_addr.sa_socket);
|
||||
|
Loading…
x
Reference in New Issue
Block a user