Re: ia_sockmask.sin_family is not set correctly

Ido <[email protected]>
Newsgroups gmane.os.openbsd.tech
Message-ID <[email protected]>
On 2026-06-22, Ido wrote:
> However, I suspect it might actually be sufficient to set it only in the two
> 	if (ai == NULL) {
> 	}
> blocks, in in_ioctl_set_ifaddr() and in_ioctl_change_ifaddr() where we allocate
> a new in_ifaddr. I'll follow up with an alternative diff that does just that.

diff --git sys/netinet/in.c sys/netinet/in.c
index 4edd8573071..77e7db0f68e 100644
--- sys/netinet/in.c
+++ sys/netinet/in.c
@@ -390,6 +390,7 @@ in_ioctl_set_ifaddr(u_long cmd, caddr_t data, struct ifnet *ifp)
 		ia->ia_ifa.ifa_addr = sintosa(&ia->ia_addr);
 		ia->ia_ifa.ifa_dstaddr = sintosa(&ia->ia_dstaddr);
 		ia->ia_ifa.ifa_netmask = sintosa(&ia->ia_sockmask);
+		ia->ia_sockmask.sin_family = AF_INET;
 		ia->ia_sockmask.sin_len = 8;
 		if (ifp->if_flags & IFF_BROADCAST) {
 			ia->ia_broadaddr.sin_len = sizeof(ia->ia_addr);
@@ -484,6 +485,7 @@ in_ioctl_change_ifaddr(u_long cmd, caddr_t data, struct ifnet *ifp)
 			ia->ia_ifa.ifa_addr = sintosa(&ia->ia_addr);
 			ia->ia_ifa.ifa_dstaddr = sintosa(&ia->ia_dstaddr);
 			ia->ia_ifa.ifa_netmask = sintosa(&ia->ia_sockmask);
+			ia->ia_sockmask.sin_family = AF_INET;
 			ia->ia_sockmask.sin_len = 8;
 			if (ifp->if_flags & IFF_BROADCAST) {
 				ia->ia_broadaddr.sin_len = sizeof(ia->ia_addr);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.