From 6f04264bbba18dd82157e2f5b8384e2f2b0969f2 Mon Sep 17 00:00:00 2001 From: Kaz Wesley Date: Wed, 14 Nov 2018 11:53:27 -0800 Subject: 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. Github-Pull: #14728 Rebased-From: b7b36decaf878a8c1dcfdb4a27196c730043474b --- src/netaddress.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'src/netaddress.cpp') diff --git a/src/netaddress.cpp b/src/netaddress.cpp index 778c2700f..9c6daefef 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) -- cgit v1.2.3