From 09100be58a4d9461435234248f9c283cd58e4eb7 Mon Sep 17 00:00:00 2001 From: Burkov Egor Date: Wed, 12 Feb 2025 16:13:02 +0300 Subject: [PATCH] src: add self-assigment memcpy checks Fixes: https://github.com/nodejs/node/issues/56718 PR-URL: https://github.com/nodejs/node/pull/56986 Reviewed-By: James M Snell Reviewed-By: Anna Henningsen --- src/node_sockaddr-inl.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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; }