From 33b359642e79fb04c90e6c92f516ec7b5a777a61 Mon Sep 17 00:00:00 2001 From: Andrew Dunham Date: Fri, 24 Mar 2023 12:43:37 -0400 Subject: [PATCH] net/dns: don't send on closed channel in resolvedManager Fixes #7686 Signed-off-by: Andrew Dunham Change-Id: Ibffb05539ab876b12407d77dcf2201d467895981 --- net/dns/resolved.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/net/dns/resolved.go b/net/dns/resolved.go index 577d69ab7..d524d2e80 100644 --- a/net/dns/resolved.go +++ b/net/dns/resolved.go @@ -117,8 +117,10 @@ func newResolvedManager(logf logger.Logf, interfaceName string) (*resolvedManage } func (m *resolvedManager) SetDNS(config OSConfig) error { + // NOTE: don't close this channel, since it's possible that the SetDNS + // call will time out and return before the run loop answers, at which + // point it will send on the now-closed channel. errc := make(chan error, 1) - defer close(errc) select { case <-m.ctx.Done():