From eda4d612c2e64321766e1074a698caeae843102a Mon Sep 17 00:00:00 2001 From: Ophestra Date: Sun, 23 Feb 2025 03:24:37 +0900 Subject: fortify: keep external files alive This should eliminate sporadic failures, like the known double close in "seccomp". Signed-off-by: Ophestra --- helper/seccomp/export.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'helper/seccomp') diff --git a/helper/seccomp/export.go b/helper/seccomp/export.go index 52ec4144..9efee3b4 100644 --- a/helper/seccomp/export.go +++ b/helper/seccomp/export.go @@ -27,7 +27,12 @@ func (e *exporter) prepare() error { } ec := make(chan error, 1) - go func(fd uintptr) { ec <- exportFilter(fd, e.opts); close(ec); _ = e.closeWrite() }(e.w.Fd()) + go func(fd uintptr) { + ec <- exportFilter(fd, e.opts) + close(ec) + _ = e.closeWrite() + runtime.KeepAlive(e.w) + }(e.w.Fd()) e.exportErr = ec runtime.SetFinalizer(e, (*exporter).closeWrite) }) -- cgit v1.3.1