diff --git a/src/node_sockaddr-inl.h b/src/node_sockaddr-inl.h index 87ff9b62268657..475395e602b8f2 100644 --- a/src/node_sockaddr-inl.h +++ b/src/node_sockaddr-inl.h @@ -79,12 +79,16 @@ SocketAddress::SocketAddress(const SocketAddress& addr) { } SocketAddress& SocketAddress::operator=(const sockaddr* addr) { - memcpy(&address_, addr, GetLength(addr)); + if (reinterpret_cast(&address_) != addr) { + memcpy(&address_, addr, GetLength(addr)); + } return *this; } SocketAddress& SocketAddress::operator=(const SocketAddress& addr) { - memcpy(&address_, &addr.address_, addr.length()); + if (this != &addr) { + memcpy(&address_, &addr.address_, addr.length()); + } return *this; }