In r207194 32-bit compatibility was added for NET_RT_IFLIST usage by
getifaddrs(3). This was not sufficient for IPv6 addresses though [1].
Using the same SA_SIZE() macro as getifaddrs(3) uses via SA_RLEN()
but with int32_t addresses this issue.
This manifested as empty addresses and corrupt data for IPv6 interfaces
and addresses. This was resulting in node crashing in package build
jails [2].
Much of the compatibility code from r207194 was removed in r263102 when
struct if_data ABI was changed. I have rewritten the needed code to
achieve 32-bit compatibility here but only for NET_RT_IFLIST. The
NET_RT_IFLISTL compatibility continues to work fine due to how
it was designed.
PR: 178881 [1]
PR: 198350 [2]