LibDNS+RequestServer: Fix UAF in lookup() by changing Span -> Vector

Co-authored-by: Ali Mohammad Pur <ali.mpfard@gmail.com>
This commit is contained in:
rmg-x 2025-02-10 18:11:19 -06:00 committed by Ali Mohammad Pur
parent 4904326244
commit ec481aa08a
Notes: github-actions[bot] 2025-02-11 06:25:28 +00:00
2 changed files with 4 additions and 4 deletions

View file

@ -344,7 +344,7 @@ void ConnectionFromClient::start_request(i32 request_id, ByteString const& metho
}
auto host = url.serialized_host().to_byte_string();
m_resolver->dns.lookup(host, DNS::Messages::Class::IN, Array { DNS::Messages::ResourceType::A, DNS::Messages::ResourceType::AAAA }.span())
m_resolver->dns.lookup(host, DNS::Messages::Class::IN, { DNS::Messages::ResourceType::A, DNS::Messages::ResourceType::AAAA })
->when_rejected([this, request_id](auto const& error) {
dbgln("StartRequest: DNS lookup failed: {}", error);
async_request_finished(request_id, 0, Requests::NetworkError::UnableToResolveHost);
@ -604,7 +604,7 @@ void ConnectionFromClient::ensure_connection(URL::URL const& url, ::RequestServe
}
if (cache_level == CacheLevel::ResolveOnly) {
[[maybe_unused]] auto promise = m_resolver->dns.lookup(url.serialized_host().to_byte_string(), DNS::Messages::Class::IN, Array { DNS::Messages::ResourceType::A, DNS::Messages::ResourceType::AAAA }.span());
[[maybe_unused]] auto promise = m_resolver->dns.lookup(url.serialized_host().to_byte_string(), DNS::Messages::Class::IN, { DNS::Messages::ResourceType::A, DNS::Messages::ResourceType::AAAA });
if constexpr (REQUESTSERVER_DEBUG) {
Core::ElapsedTimer timer;
timer.start();