if_ovpn: fill out sin_len/sin6_len

When we parse an nvlist sockaddr we should set the sockaddr_in(6)'s length
field. This isn't currently used by anything yet, but it's reasonable to expect
a sockaddr to contain its length.

MFC after:	3 weeks
Sponsored by:	Rubicon Communications, LLC ("Netgate")
This commit is contained in:
Kristof Provost 2025-07-22 14:41:20 +02:00
parent 4bb3b36577
commit e83df5367d

View file

@ -341,6 +341,7 @@ ovpn_nvlist_to_sockaddr(const nvlist_t *nvl, struct sockaddr_storage *sa)
size_t len;
const void *addr = nvlist_get_binary(nvl, "address", &len);
in->sin_family = af;
in->sin_len = sizeof(*in);
if (len != sizeof(in->sin_addr))
return (EINVAL);
@ -355,6 +356,7 @@ ovpn_nvlist_to_sockaddr(const nvlist_t *nvl, struct sockaddr_storage *sa)
size_t len;
const void *addr = nvlist_get_binary(nvl, "address", &len);
in6->sin6_family = af;
in6->sin6_len = sizeof(*in6);
if (len != sizeof(in6->sin6_addr))
return (EINVAL);