cmdmon: fix transmit_reply() to not read uninitialized data
In the FreeBSD-specific code checking for a bound IPv4 socket, make sure it is not a Unix domain address to avoid reading uninitialized IP-specific fields. This fixes an error reported by valgrind.
This commit is contained in:
parent
fb0570cc73
commit
d5f2401421
1 changed files with 2 additions and 1 deletions
3
cmdmon.c
3
cmdmon.c
|
@ -321,7 +321,8 @@ transmit_reply(int sock_fd, int request_length, SCK_Message *message)
|
|||
|
||||
#if !defined(HAVE_IN_PKTINFO) && defined(IP_SENDSRCADDR)
|
||||
/* On FreeBSD a local IPv4 address cannot be specified on bound socket */
|
||||
if (message->local_addr.ip.family == IPADDR_INET4 && (sock_fd != sock_fd4 || bound_sock_fd4))
|
||||
if (message->addr_type == SCK_ADDR_IP && message->local_addr.ip.family == IPADDR_INET4 &&
|
||||
(sock_fd != sock_fd4 || bound_sock_fd4))
|
||||
message->local_addr.ip.family = IPADDR_UNSPEC;
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in a new issue