aboutsummaryrefslogtreecommitdiff
path: root/go/psx-fd.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/psx-fd.go')
-rw-r--r--go/psx-fd.go25
1 files changed, 25 insertions, 0 deletions
diff --git a/go/psx-fd.go b/go/psx-fd.go
new file mode 100644
index 0000000..7aa3a76
--- /dev/null
+++ b/go/psx-fd.go
@@ -0,0 +1,25 @@
+package main
+
+import (
+ "log"
+ "os"
+ "syscall"
+ "time"
+
+ "kernel.org/pub/linux/libs/security/libcap/psx"
+)
+
+const prSetKeepCaps = 8
+
+func main() {
+ r, w, err := os.Pipe()
+ if err != nil {
+ log.Fatalf("failed to obtain pipe: %v", err)
+ }
+ data := make([]byte, 2+r.Fd())
+ go r.Read(data)
+ time.Sleep(500 * time.Millisecond)
+ psx.Syscall3(syscall.SYS_PRCTL, prSetKeepCaps, 1, 0)
+ w.Close()
+ r.Close()
+}