From a8cc519c708cb8a81fcb146130e0f9e7ac7e8a35 Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Tue, 30 Nov 2021 11:43:54 -0800 Subject: [PATCH] net/portmapper: improve handling of UPnP parse errors Without the continue, we might overwrite our current meta with a zero meta. Log the error, so that we can check for anything unexpected. Signed-off-by: Josh Bleecher Snyder --- net/portmapper/portmapper.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/portmapper/portmapper.go b/net/portmapper/portmapper.go index 181bd6f57..f352e9883 100644 --- a/net/portmapper/portmapper.go +++ b/net/portmapper/portmapper.go @@ -770,7 +770,8 @@ func (c *Client) Probe(ctx context.Context) (res ProbeResult, err error) { meta, err := parseUPnPDiscoResponse(buf[:n]) if err != nil { metricUPnPParseErr.Add(1) - c.logf("unrecognized UPnP discovery response; ignoring") + c.logf("unrecognized UPnP discovery response; ignoring: %v", err) + continue } metricUPnPOK.Add(1) c.logf("[v1] UPnP reply %+v, %q", meta, buf[:n])