aboutsummaryrefslogtreecommitdiff
path: root/src/netaddress.cpp
diff options
context:
space:
mode:
authorKaz Wesley <kaz@lambdaverse.org>2018-11-14 11:53:27 -0800
committerKaz Wesley <kaz@lambdaverse.org>2018-11-15 13:47:53 -0800
commitb7b36decaf878a8c1dcfdb4a27196c730043474b (patch)
tree9550195c8b45644f37f870390c7735a290e8cbf8 /src/netaddress.cpp
parent8ebbef016928811756e46b9086067d1c826797a8 (diff)
downloadbitcoin-b7b36decaf878a8c1dcfdb4a27196c730043474b.tar.xz
fix uninitialized read when stringifying an addrLocal
Reachable from either place where SetIP is used when our best-guess addrLocal for a peer is IPv4, but the peer tells us it's reaching us at an IPv6 address. In that case, SetIP turns an IPv4 address into an IPv6 address without setting the scopeId, which is subsequently read in GetSockAddr during CNetAddr::ToStringIP and passed to getnameinfo. Fix by ensuring every constructor initializes the scopeId field with something.
Diffstat (limited to 'src/netaddress.cpp')
-rw-r--r--src/netaddress.cpp1
1 files changed, 0 insertions, 1 deletions
diff --git a/src/netaddress.cpp b/src/netaddress.cpp
index e1af4eff62..10e446392f 100644
--- a/src/netaddress.cpp
+++ b/src/netaddress.cpp
@@ -17,7 +17,6 @@ static const unsigned char g_internal_prefix[] = { 0xFD, 0x6B, 0x88, 0xC0, 0x87,
CNetAddr::CNetAddr()
{
memset(ip, 0, sizeof(ip));
- scopeId = 0;
}
void CNetAddr::SetIP(const CNetAddr& ipIn)