Skip to content

addrv2: crash due to 0.9.85.249 #383

@brunoerg

Description

@brunoerg
Addrv2 parse failed
Module: Rustbitcoin
Result: clearnet=1tor=0cjdns=0i2p=0
Module: Bitcoin
Result: clearnet=0tor=0cjdns=0i2p=0

The address that pointed this discrepancy is 0.9.85.249 which Bitcoin Core doesn't accept it because it is a local address. rust-bitcoin successfully parsed and accepted it. See:

bool CNetAddr::IsLocal() const
{
    // IPv4 loopback (127.0.0.0/8 or 0.0.0.0/8)
    if (IsIPv4() && (m_addr[0] == 127 || m_addr[0] == 0)) {
        return true;
    }

    // IPv6 loopback (::1/128)
    static const unsigned char pchLocal[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1};
    if (IsIPv6() && memcmp(m_addr.data(), pchLocal, sizeof(pchLocal)) == 0) {
        return true;
    }

    return false;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions