From ef47f01cb3cd99f1b5e3299f03b45c8787d8a04f Mon Sep 17 00:00:00 2001 From: Claes Mogren Date: Wed, 28 Nov 2018 16:33:21 -0800 Subject: [PATCH] Return the err from f.Close() In the case of an EIO (IO Exception) the error from the write would be lost because of the use of defer. See https://www.joeshaw.org/dont-defer-close-on-writable-files/ --- pkg/networkutils/network.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/networkutils/network.go b/pkg/networkutils/network.go index 7843b0f6e8..1899312c7e 100644 --- a/pkg/networkutils/network.go +++ b/pkg/networkutils/network.go @@ -381,12 +381,13 @@ func (n *linuxNetwork) setProcSys(key, value string) error { if err != nil { return err } - defer f.Close() _, err = f.WriteString(value) if err != nil { + // If the write failed, just close + _ = f.Close() return err } - return nil + return f.Close() } type iptablesRule struct {