From 099da78af5b78ac69a9c3550229a29d8dac0e9f8 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Thu, 13 Feb 2025 10:40:51 +0900 Subject: [PATCH] helper/seccomp: eliminate data race on pfd Turns out the doc comment on os.File was lying about its methods being safe for concurrent use. The race detector picked up a data race from concurrent use of Fd and Close. This change eliminates that by calling Fd in the prepare routine. Signed-off-by: Ophestra --- helper/seccomp/export.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helper/seccomp/export.go b/helper/seccomp/export.go index 6706408..dd1aeda 100644 --- a/helper/seccomp/export.go +++ b/helper/seccomp/export.go @@ -28,7 +28,7 @@ func (e *exporter) prepare() error { } ec := make(chan error, 1) - go func() { ec <- exportFilter(e.w.Fd(), e.opts); close(ec); _ = e.closeWrite() }() + go func(fd uintptr) { ec <- exportFilter(fd, e.opts); close(ec); _ = e.closeWrite() }(e.w.Fd()) e.exportErr = ec runtime.SetFinalizer(e, (*exporter).closeWrite) })