The current code in "canohost.c" looks like this: void ipv64_normalise_mapped(struct sockaddr_storage *addr, socklen_t *len) { struct sockaddr_in6 *a6 = (struct sockaddr_in6 *)addr; struct sockaddr_in *a4 = (struct sockaddr_in *)addr; ... memset(addr, 0, sizeof(*a4)); That last line has the correct behavior, but it would help with static analysis and compiler diagnostics if it were written as: memset(a4, 0, sizeof(*a4)); A compiler here unnamed gives a warning on the unmodified line, because it sees that *addr is not the same size as *a4 and therefore the memset() might be setting the "wrong" number of bytes. If we change the code to use a4 consistently when referring to an IPv4 sockaddr, the compiler is happier, and incidentally the code's correctness is more obvious, too.
Created attachment 1933 [details] /home/djm/canohost-warnfix.diff
Patch applied - thanks.
Move resolved bugs to CLOSED after 5.7 release