From 416c1a58f6d773136a82c4ad0b3685caa1d84cda Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Mon, 14 Sep 2020 21:17:08 +0200 Subject: [PATCH] diag: plug socket leak by adding missing Close() --- internal/diag/ping.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/internal/diag/ping.go b/internal/diag/ping.go index 43ecb2f..6ac31c7 100644 --- a/internal/diag/ping.go +++ b/internal/diag/ping.go @@ -73,6 +73,7 @@ func (d *ping4gw) Evaluate() (string, error) { if err != nil { return "", err } + defer p.Close() rtt, err := p.Ping(addr, timeout) if err != nil { return "", err @@ -115,6 +116,7 @@ func (d *ping4) Evaluate() (string, error) { if err != nil { return "", err } + defer p.Close() rtt, err := p.Ping(addr, timeout) if err != nil { return "", err @@ -177,6 +179,7 @@ func (d *ping6gw) Evaluate() (string, error) { if err != nil { return "", fmt.Errorf("ping.New(::): %v", err) } + defer p.Close() rtt, err := p.Ping(addr, timeout) if err != nil { return "", fmt.Errorf("ping6(%v, %v): %v", addr, timeout, err) @@ -251,6 +254,7 @@ func (d *ping6) Evaluate() (string, error) { if err != nil { return "", err } + defer p.Close() ctx, canc := context.WithTimeout(context.Background(), timeout) defer canc() if strings.HasPrefix(addr.String(), "ff02::") {