From e661af6b985ab8dd021df0170dc2b47436c4c2fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Tue, 31 Mar 2026 17:13:18 +0800 Subject: [PATCH] dns: fix err shadowing in buildRules Reuse the outer err variable in the rule-construction and rule-startup loops instead of redeclaring it with :=, and declare dnsRule separately. --- dns/router.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dns/router.go b/dns/router.go index 96897c036..49c166c29 100644 --- a/dns/router.go +++ b/dns/router.go @@ -267,7 +267,8 @@ func (r *Router) buildRules(startRules bool) ([]adapter.DNSRule, bool, error) { } newRules := make([]adapter.DNSRule, 0, len(r.rawRules)) for i, ruleOptions := range r.rawRules { - dnsRule, err := R.NewDNSRule(r.ctx, r.logger, ruleOptions, true, legacyDNSMode) + var dnsRule adapter.DNSRule + dnsRule, err = R.NewDNSRule(r.ctx, r.logger, ruleOptions, true, legacyDNSMode) if err != nil { closeRules(newRules) return nil, false, E.Cause(err, "parse dns rule[", i, "]") @@ -276,7 +277,7 @@ func (r *Router) buildRules(startRules bool) ([]adapter.DNSRule, bool, error) { } if startRules { for i, rule := range newRules { - err := rule.Start() + err = rule.Start() if err != nil { closeRules(newRules) return nil, false, E.Cause(err, "initialize DNS rule[", i, "]")