diff options
| author | tobtoht <tob@featherwallet.org> | 2026-06-09 17:49:35 +0000 |
|---|---|---|
| committer | tobtoht <tob@featherwallet.org> | 2026-06-09 17:49:35 +0000 |
| commit | 1ed6b8183c798fe65df724d6ea7fdc3ba3ad20f7 (patch) | |
| tree | a7d0176fb663a0c1211ea55eed52b42e0c5d9a6c /tests | |
| parent | f6939487fe5f8efe865cbfa9204956c85411241b (diff) | |
| parent | 93d792e63c85baec6f8a3b8f9bbad3f803dd3a7e (diff) | |
| download | monzero-core-1ed6b8183c798fe65df724d6ea7fdc3ba3ad20f7.tar.gz monzero-core-1ed6b8183c798fe65df724d6ea7fdc3ba3ad20f7.tar.xz monzero-core-1ed6b8183c798fe65df724d6ea7fdc3ba3ad20f7.zip | |
Merge pull request #10704
93d792e net: canonicalize Tor/I2P hosts during deserialization (selsta)
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/unit_tests/net.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/unit_tests/net.cpp b/tests/unit_tests/net.cpp index 9633f50e5..291f1e6ab 100644 --- a/tests/unit_tests/net.cpp +++ b/tests/unit_tests/net.cpp @@ -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{}; |
