rxrpc: Clear the unused part of a sockaddr_rxrpc for memcmp() use
Clear the unused part of a sockaddr_rxrpc structs so that memcmp() can be used to compare them. Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:
parent
2b15ef15bc
commit
ab802ee0ab
1 changed files with 5 additions and 3 deletions
|
@ -81,6 +81,8 @@ static int rxrpc_validate_address(struct rxrpc_sock *rx,
|
|||
struct sockaddr_rxrpc *srx,
|
||||
int len)
|
||||
{
|
||||
unsigned tail;
|
||||
|
||||
if (len < sizeof(struct sockaddr_rxrpc))
|
||||
return -EINVAL;
|
||||
|
||||
|
@ -103,9 +105,7 @@ static int rxrpc_validate_address(struct rxrpc_sock *rx,
|
|||
_debug("INET: %x @ %pI4",
|
||||
ntohs(srx->transport.sin.sin_port),
|
||||
&srx->transport.sin.sin_addr);
|
||||
if (srx->transport_len > 8)
|
||||
memset((void *)&srx->transport + 8, 0,
|
||||
srx->transport_len - 8);
|
||||
tail = offsetof(struct sockaddr_rxrpc, transport.sin.__pad);
|
||||
break;
|
||||
|
||||
case AF_INET6:
|
||||
|
@ -113,6 +113,8 @@ static int rxrpc_validate_address(struct rxrpc_sock *rx,
|
|||
return -EAFNOSUPPORT;
|
||||
}
|
||||
|
||||
if (tail < len)
|
||||
memset((void *)srx + tail, 0, len - tail);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue