From cb17c08db8faf3b5905cea53286b212012928c71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Mon, 10 Feb 2025 14:32:33 +0800 Subject: [PATCH] Fix crash in exchangeParallel --- dns/transport/local/local.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/dns/transport/local/local.go b/dns/transport/local/local.go index 80a40d6a..e5e8aef9 100644 --- a/dns/transport/local/local.go +++ b/dns/transport/local/local.go @@ -86,9 +86,11 @@ func (t *Transport) exchangeParallel(ctx context.Context, systemConfig *dnsConfi results := make(chan queryResult) startRacer := func(ctx context.Context, fqdn string) { response, err := t.tryOneName(ctx, systemConfig, fqdn, message) - addresses, _ := dns.MessageToAddresses(response) - if len(addresses) == 0 { - err = E.New(fqdn, ": empty result") + if err == nil { + addresses, _ := dns.MessageToAddresses(response) + if len(addresses) == 0 { + err = E.New(fqdn, ": empty result") + } } select { case results <- queryResult{response, err}: