//go:build windows package hooks import ( "bytes" "io" "os" ) func writeBundledPlugin(path string, data []byte) error { file, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_EXCL, 0600) // #nosec G304 -- the path is an entry under a private temporary bundle root. if err != nil { return err } remove := true defer func() { if remove { _ = os.Remove(path) } }() if _, err := io.Copy(file, bytes.NewReader(data)); err != nil { _ = file.Close() return err } if err := file.Sync(); err != nil { _ = file.Close() return err } if err := file.Chmod(0700); err != nil { _ = file.Close() return err } if err := file.Close(); err != nil { return err } remove = false return nil }