diff --git a/include/boost/asio/generic/detail/impl/endpoint.ipp b/include/boost/asio/generic/detail/impl/endpoint.ipp index 3c2da4a6..080094ce 100644 --- a/include/boost/asio/generic/detail/impl/endpoint.ipp +++ b/include/boost/asio/generic/detail/impl/endpoint.ipp @@ -34,7 +34,7 @@ namespace detail { endpoint::endpoint() { - init(0, 0, 0); + init(nullptr, 0, 0); } endpoint::endpoint(const void* sock_addr, @@ -95,7 +95,11 @@ void endpoint::init(const void* sock_addr, using namespace std; // For memset and memcpy. memset(&data_.generic, 0, sizeof(boost::asio::detail::sockaddr_storage_type)); - memcpy(&data_.generic, sock_addr, sock_addr_size); + // init(null_ptr,0,0) results in sock_addr being nullptr + if(sock_addr) + { + memcpy(&data_.generic, sock_addr, sock_addr_size); + } size_ = sock_addr_size; protocol_ = sock_protocol;