瀏覽代碼

Fix SELinux errors caused by multi-threading

Occasionally the selinux_test program will fail because we are setting file
context based on the Process ID but not the TID.  THis change will always
use the TID to set SELinux labels.

Docker-DCO-1.1-Signed-off-by: Daniel Walsh <dwalsh@redhat.com> (github: rhatdan)
Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: crosbymichael)
Dan Walsh 11 年之前
父節點
當前提交
12934ef3a4
共有 1 個文件被更改,包括 3 次插入3 次删除
  1. 3 3
      pkg/selinux/selinux.go

+ 3 - 3
pkg/selinux/selinux.go

@@ -146,15 +146,15 @@ func Setfilecon(path string, scon string) error {
 }
 
 func Setfscreatecon(scon string) error {
-	return writeCon("/proc/self/attr/fscreate", scon)
+	return writeCon(fmt.Sprintf("/proc/self/task/%d/attr/fscreate", system.Gettid()), scon)
 }
 
 func Getfscreatecon() (string, error) {
-	return readCon("/proc/self/attr/fscreate")
+	return readCon(fmt.Sprintf("/proc/self/task/%d/attr/fscreate", system.Gettid()))
 }
 
 func getcon() (string, error) {
-	return readCon("/proc/self/attr/current")
+	return readCon(fmt.Sprintf("/proc/self/task/%d/attr/current", system.Gettid()))
 }
 
 func Getpidcon(pid int) (string, error) {