Multicast socket join and drop can cause a buffer overflow error on 64-bit platforms.
The problem is caused by instances of the following memory copies:
memcpy(&group.imr_interface, &myaddr.sin_addr, sizeof(&myaddr.sin_addr))
The address-of operator used in the size of the memory copy should be removed, i.e.:
memcpy(&group.imr_interface, &myaddr.sin_addr, sizeof(myaddr.sin_addr))
The effect is to attempt to copy 8 bytes to/from structures that are only 4 bytes in size when pointers are 64-bit