From 091d732b15eda3557360f19681826289faac81c1 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Wed, 10 Jul 2024 08:47:12 -0700 Subject: [PATCH] QDnsLookup/Unix: fix buffer size on sending DNS queries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Commit f2f00b2a4632aaeb58e6cdae7faef9e0bafaff49 ("QDnsLookup: implement DNS-over-TLS") added the use of QSpan, but confounded the size of the buffer array with the size of the query we prepared. The queryLength variable was never used after checking if the preparation had failed. Task-number: QTBUG-127073 Change-Id: Iac1ff680887641888e00fffd17e0e49faab1d579 Reviewed-by: MÃ¥rten Nordheim (cherry picked from commit 59133b16cd3adffc70833bb2b81332c9649fa51e) Reviewed-by: Qt Cherry-pick Bot --- src/network/kernel/qdnslookup_unix.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/network/kernel/qdnslookup_unix.cpp b/src/network/kernel/qdnslookup_unix.cpp index 9de073b781a..4262ad58d50 100644 --- a/src/network/kernel/qdnslookup_unix.cpp +++ b/src/network/kernel/qdnslookup_unix.cpp @@ -250,14 +250,15 @@ void QDnsLookupRunnable::query(QDnsLookupReply *reply) return reply->makeResolverSystemError(); // Perform DNS query. + QSpan query(qbuffer.data(), queryLength); ReplyBuffer buffer(ReplyBufferSize); int responseLength = -1; switch (protocol) { case QDnsLookup::Standard: - responseLength = sendStandardDns(reply, &state, qbuffer, buffer, nameserver, port); + responseLength = sendStandardDns(reply, &state, query, buffer, nameserver, port); break; case QDnsLookup::DnsOverTls: - if (!sendDnsOverTls(reply, qbuffer, buffer)) + if (!sendDnsOverTls(reply, query, buffer)) return; responseLength = buffer.size(); break;