From 2dbbfe7f10dbf2a3105fb793afe8f6e95a08305b Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Sun, 10 May 2020 12:43:02 +0100 Subject: [PATCH] Fix panic in parseTXTFields --- src/mdns/mdns.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/mdns/mdns.go b/src/mdns/mdns.go index c3292cf7..6392641a 100644 --- a/src/mdns/mdns.go +++ b/src/mdns/mdns.go @@ -336,9 +336,10 @@ func (s *mDNSServer) listen() { incoming := make(chan *mdns.ServiceEntry) go func() { - if err := mdns.Lookup(MDNSService, MDNSDomain, incoming); err != nil { + if err := mdns.Listen(incoming, s.stop, &s.intf); err != nil { s.mdns.log.Println("Failed to initialize resolver:", err.Error()) } + close(incoming) }() for { @@ -378,7 +379,9 @@ func parseTXTFields(fields []string) map[string]string { result := make(map[string]string) for _, field := range fields { pos := strings.Index(field, "=") - result[field[:pos]] = field[pos+1:] + if pos > 0 && len(field) > pos+1 { + result[field[:pos]] = field[pos+1:] + } } return result }