--- proxy/hdrs/MIME.cc +++ proxy/hdrs/MIME.cc @@ -2282,20 +2282,15 @@ MIMEHdr::get_host_port_values(const char **host_ptr, ///< Pointer to host. if (b) { if ('[' == *b) { auto idx = b.find(']'); - if (idx <= b.size() && b[idx + 1] == ':') { + if (idx < b.size() - 1 && b[idx + 1] == ':') { host = b.take_prefix_at(idx + 1); port = b; } else { host = b; } } else { - auto x = b.split_prefix_at(':'); - if (x) { - host = x; - port = b; - } else { - host = b; - } + host = b.take_prefix_at(':'); + port = b; } if (host) { --- src/tscpp/util/unit_tests/test_TextView.cc +++ src/tscpp/util/unit_tests/test_TextView.cc @@ -275,20 +275,15 @@ TEST_CASE("TextView Affixes", "[libts][TextView]") auto f_host = [](TextView b, TextView &host, TextView &port) -> void { if ('[' == *b) { auto idx = b.find(']'); - if (idx <= b.size() && b[idx + 1] == ':') { + if (idx < b.size() - 1 && b[idx + 1] == ':') { host = b.take_prefix_at(idx + 1); port = b; } else { host = b; } } else { - auto x = b.split_prefix_at(':'); - if (x) { - host = x; - port = b; - } else { - host = b; - } + host = b.take_prefix_at(':'); + port = b; } };