File CVE-2016-7545_sandbox_escape.patch of Package policycoreutils.3861

Index: policycoreutils-2.3/sandbox/sandbox
===================================================================
--- policycoreutils-2.3.orig/sandbox/sandbox	2016-12-19 08:28:24.922367202 +0100
+++ policycoreutils-2.3/sandbox/sandbox	2016-12-19 08:29:33.563413662 +0100
@@ -452,10 +452,15 @@ sandbox [-h] [-c] [-l level ] [-[X|M] [-
                                 cmds += [ "--" ] + self.__paths
                          return subprocess.Popen(cmds).wait()
 
-                  selinux.setexeccon(self.__execcon)
-                  rc = subprocess.Popen(self.__cmds).wait()
-                  selinux.setexeccon(None)
-                  return rc
+                  pid = os.fork()
+                  if pid == 0:
+                      rc = os.setsid()
+                      if rc:
+                          return rc
+                      selinux.setexeccon(self.__execcon)
+                      os.execv(self.__cmds[0], self.__cmds)
+                  rc = os.waitpid(pid, 0)
+                  return os.WEXITSTATUS(rc[1])
 
            finally:
                   for i in self.__paths:
openSUSE Build Service is sponsored by