K 10
svn:author
V 5
eagle
K 8
svn:date
V 27
2009-08-20T22:28:46.525025Z
K 7
svn:log
V 916
Strict aliasing cleanups in innd network code

gcc 4.4 is now stricter about aliasing checks and doesn't like taking
variables of type struct sockaddr_storage and casting them or assigning
pointers to them to other struct types and then dereferencing or storing
through those other pointers.  It may optimize the stores away, which
would be bad.

The primary affected code is the inetd query code.  There, allocate
memory from the heap instead of the stack and use a variable of type
struct sockaddr *, which is cast to other pointer types.  gcc knows
how to deal with that.

Elsewhere, eliminate RCaddressmatch in favor of network_sockaddr_equal,
which does the same thing but is aliasing-clean.  Stop using SA_LEN to
get the length of an address for memcpy and instead just copy the full
size of a sockaddr_storage, which given that both the source and the
destination are sockaddr_storage variables will be safe.

END
