mirror of
https://github.com/wownero/wownero.git
synced 2026-10-17 07:31:35 +02:00
net: canonicalize Tor/I2P hosts during deserialization
(cherry picked from commit 93d792e63c85baec6f8a3b8f9bbad3f803dd3a7e)
This commit is contained in:
@@ -343,6 +343,20 @@ TEST(tor_address, epee_serializev_v3)
|
||||
EXPECT_STREQ(v3_onion, command.tor.host_str());
|
||||
EXPECT_EQ(10u, command.tor.port());
|
||||
|
||||
// make sure tor_address::_load canonicalizes incoming hosts
|
||||
{
|
||||
epee::serialization::portable_storage stg{};
|
||||
stg.load_from_binary(epee::to_span(buffer));
|
||||
|
||||
EXPECT_TRUE(stg.set_value("host", std::string{v3_onion_upper}, stg.open_section("tor", nullptr, false)));
|
||||
EXPECT_TRUE(command.load(stg));
|
||||
}
|
||||
|
||||
EXPECT_FALSE(command.tor.is_unknown());
|
||||
EXPECT_NE(net::tor_address{}, command.tor);
|
||||
EXPECT_STREQ(v3_onion, command.tor.host_str());
|
||||
EXPECT_EQ(10u, command.tor.port());
|
||||
|
||||
// make sure that exceeding max buffer doesn't destroy tor_address::_load
|
||||
{
|
||||
epee::serialization::portable_storage stg{};
|
||||
@@ -751,6 +765,20 @@ TEST(i2p_address, epee_serializev_b32)
|
||||
EXPECT_STREQ(b32_i2p, command.i2p.host_str());
|
||||
EXPECT_EQ(1u, command.i2p.port());
|
||||
|
||||
// make sure i2p_address::_load canonicalizes incoming hosts
|
||||
{
|
||||
epee::serialization::portable_storage stg{};
|
||||
stg.load_from_binary(epee::to_span(buffer));
|
||||
|
||||
EXPECT_TRUE(stg.set_value("host", std::string{b32_i2p_upper}, stg.open_section("i2p", nullptr, false)));
|
||||
EXPECT_TRUE(command.load(stg));
|
||||
}
|
||||
|
||||
EXPECT_FALSE(command.i2p.is_unknown());
|
||||
EXPECT_NE(net::i2p_address{}, command.i2p);
|
||||
EXPECT_STREQ(b32_i2p, command.i2p.host_str());
|
||||
EXPECT_EQ(1u, command.i2p.port());
|
||||
|
||||
// make sure that exceeding max buffer doesn't destroy i2p_address::_load
|
||||
{
|
||||
epee::serialization::portable_storage stg{};
|
||||
|
||||
Reference in New Issue
Block a user