vos: fix crash when getting a non-loopback host address
Fix a crash in vos when trying to find a non loopback server address.
The struct hostent h_addr_list field is a null terminated array of
pointers to addresses, in network byte order. The struct hostent length
field is not the length of the h_addr_list array (as one would expect),
but rather the length of an address in bytes, which is always 4 for IP
version 4 addresses.
Verify the returned addresses are IPv4 and take care to not iterate
beyond the end of the address pointer array.
The non-loopback address check was introduced
commit
dc2a4fe4e949c250ca25708aa5a6dd575878fd7e.
Change-Id: I75dff5ed2a7dd3c4bd6605b375a7a2ffa91eff01
Reviewed-on: http://gerrit.openafs.org/11609
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>