1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2024-12-23 17:34:00 +03:00

resolved: match CNAME replies to right question

Previously by mistake we'd always match every single reply we get in a
CNAME chain to the original question from the stub client. That's
broken, we need to test it against the CNAME query we are currently
looking at.

The effect of this incorrect matching was that we'd assign the RRs to
the wrong section since we'd assume they'd be auxiliary answers instead
of primary answers.

Fixes: #18972
This commit is contained in:
Lennart Poettering 2021-03-15 22:15:18 +01:00
parent 1414b67e0d
commit a7c0291c10

View File

@ -761,7 +761,7 @@ static void dns_stub_query_complete(DnsQuery *q) {
* and keep adding all RRs in the CNAME chain. */ * and keep adding all RRs in the CNAME chain. */
r = dns_stub_assign_sections( r = dns_stub_assign_sections(
q, q,
q->request_packet->question, dns_query_question_for_protocol(q, DNS_PROTOCOL_DNS),
dns_stub_reply_with_edns0_do(q)); dns_stub_reply_with_edns0_do(q));
if (r < 0) { if (r < 0) {
log_debug_errno(r, "Failed to assign sections: %m"); log_debug_errno(r, "Failed to assign sections: %m");